在div内执行javascript
问题已更新。在底部更新- 我必须把脚本放在一页上。不幸的是,我不能控制页眉或页脚,甚至不能控制body标签。我所拥有的只是一组内部html,它位于body标记内的包装DIV中。大概是这样的:在div内执行javascript,javascript,Javascript,问题已更新。在底部更新- 我必须把脚本放在一页上。不幸的是,我不能控制页眉或页脚,甚至不能控制body标签。我所拥有的只是一组内部html,它位于body标记内的包装DIV中。大概是这样的: <body> <div id="wrap"> <!-- My controlled content --> </div> </body> <body> <div id="wrap"
<body>
<div id="wrap">
<!-- My controlled content -->
</div>
</body>
<body>
<div id="wrap">
<div id="mycontent">
<script type="text/javascript" language="javascript" src="somesource"></script>
<script>
var x, y;
//Do something here with x,y;
alert("hello");
</script>
</div>
</div>
</body>
现在,我必须放置一些javascript。很明显,我把它放在我控制的区域内。问题是javascript没有被执行。我甚至发出了警报,但没有弹出警报框。最终代码如下所示:
<body>
<div id="wrap">
<!-- My controlled content -->
</div>
</body>
<body>
<div id="wrap">
<div id="mycontent">
<script type="text/javascript" language="javascript" src="somesource"></script>
<script>
var x, y;
//Do something here with x,y;
alert("hello");
</script>
</div>
</div>
</body>
变量x,y;
//在这里用x,y做点什么;
警惕(“你好”);
你知道会出什么问题吗?我怎样才能修好它
谢谢
更新:我不确定这是否有什么不同,但我忘了提到所有这些HTML都存在于框架标记中(在框架集下)。这会有所不同吗?编辑:
我看到您正在尝试加载一个外部javascript文件-您确定该文件存在吗
相反,将一些javascript包装在
文档就绪
事件中:
下面是使用加载dom时运行代码的方法。但是,如果您不想使用jQuery,请参阅本答案的最后一部分
$(document).ready(function(){
// dom ready
alert("hello");
});
您可以进一步控制div
my content,如下所示:
$(document).ready(function(){
// dom ready
alert("hello");
$("#mycontent").hide(); // for example, hide the div
});
非jQuery:
在
HTML
页面的底部,将代码放入
标记中-这样,代码将在加载页面上的元素后运行。禁用XSS筛选器
作为一名安全审计员,我刚刚意识到Chrome和Internet Explorer(IE)正在呈现我的警报()
使用以下浏览器运行chrome:
C:\Program Files (x86)\Google\Chrome\Application>chrome.exe --disable-xss-auditor
Javascript需要触发一个事件。与前面提到的另一张海报一样,document.ready是文档加载事件。大多数其他事件都是由用户触发的,比如鼠标点击等。您不能将Javascript放在HTML文件的中间,然后期望它执行。它需要绑定到一个事件只是一个注释:
文档。ready
:不是javascript,$(文档)。ready
是jQuery。改用:
在现代浏览器中(参见上面链接中的支持),它相当于
window.addEventListener("DOMContentLoaded",function() {
// dom ready
alert("hello");
});
他没有用jQuery标记这个问题(你甚至没有提到你正在使用它)@Nicosunshine让我知道最近的更新是否是你想要的,我想是:)@RichardTurner,谢谢。有时我只是假设jQuery方式对我来说更自然,但我想在这种情况下它是错误的。在HTML页面的底部,您可能指的是他可以访问的包装器div的可访问部分的底部。我会去掉否定的,但我在7分钟前投了票,对不起。我仍然不认为这是真正的问题。我的意思是,在页面中间有一个警告的脚本应该工作精细,你的意思是说你的代码没有出现警报吗?这一行让人困惑:“我甚至发出了警报,但弹出了警报框”您是否在动态地进行这些更改?您的
是否显示在生成页面的源代码中?您是否收到任何错误消息?您的
是否对页面的doctype有效(即,您是否需要设置类型属性)?您是否检查了控制台?如果可能,请尝试在chrome中打开url,然后打开开发者工具(Ctrl+Shift+i)并查看网络部分。如果您在列表中看到您的脚本名称,则说明它已正确加载,或者如果浏览器未能加载脚本,则会显示错误