[英]Is it possible for someone to run JavaScript by typing it in an input box?
这不是我真正想做的事情,只是想知道是否可能。
假设我有一个这样的页面,它只是一个标题和一个输入框。
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>2014-4-24-01</title>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<script>
function jQuerySetup() {
if($) {
$(document).ready( function () {
$("body").on("keypress", "input", function ( event ){
if(event.keyCode == 13){
$("body").get(0).innerHTML = this.value;
}
});
});
} else {
window.setTimeout(jQuerySetup, 250);
}
}
jQuerySetup();
</script>
</head>
<body>
<h3>Test</h3>
<input type="text" width="20">
<div id="testDiv"></div>
</body>
</html>
如果我在输入框中键入以下内容并按Enter键,则不会发生任何事情。 这是为什么?
<script>window.setTimeout(function () { alert("Uh oh"); }, 1000);</script>
编辑:我知道有人通过控制台窗口运行JavaScript并获得类似的效果非常容易。 但我的问题更多的是理解为什么以上是不可能的(或者为什么我没有把它弄好)。
innerHTML
不会执行脚本,而是使用jQuery html
。
$("body").html(this.value);
你不需要if($) {
和setTimeout
因为它是由$(document).ready
处理的。
你可以尝试:
<script>
$(document).ready( function () {
$("body").on("keypress", "input", function ( event ){
if(event.keyCode == 13){
$("body").get(0).innerHTML = this.value;
}
});
});
</script>
这里的工作示例
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.