[英]Executing javascript inside div
问题已更新。 在底部更新-
我必须将脚本放在页面上。 不幸的是,我无法控制页眉或页脚甚至body标签。 所有,我有一组内部html,位于包装在body标签内的包装DIV中。 像这样:
<body>
<div id="wrap">
<!-- My controlled content -->
</div>
</body>
现在,我必须放置一些JavaScript。 因此,我显然将其放在我控制的部分中。 问题是没有执行JavaScript。 我什至发出了警报,但没有弹出警报框。 最终代码如下所示:
<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>
知道有什么问题吗? 以及我该如何解决?
谢谢。
更新:我不确定这是否有任何区别,但是我忘了提到所有这些HTML都存在于frame标签内(在frameset下)。 那会有所作为吗?
编辑:
我看到您正在尝试加载外部javascript文件-您确定该文件存在吗?
相反,将一些javascript包装在document ready
事件中:
下面是在使用jQuery加载dom时运行代码的一种方法。 但是,如果您不想使用jQuery,请参阅此答案的最后一部分。
$(document).ready(function(){
// dom ready
alert("hello");
});
您可以像这样进一步控制div
我的内容:
$(document).ready(function(){
// dom ready
alert("hello");
$("#mycontent").hide(); // for example, hide the div
});
非jQuery:
在HTML
页面的底部,将代码放在<script>
标记中-这样,代码将在页面上的元素加载后运行。
禁用XSS过滤器。
作为安全审核员,我刚刚意识到Chrome和Internet Explorer(IE)都呈现了我的alert()。
使用以下命令运行chrome:
C:\Program Files (x86)\Google\Chrome\Application>chrome.exe --disable-xss-auditor
Javascript需要触发一个事件。 就像提到的另一个发布者一样, document.ready是文档加载事件。 大多数其他事件都是由用户触发的,例如单击鼠标等。您不能只将Javascript放到HTML文件的一半位置并期望它执行。 它需要与事件相关联 。
只是一个注释: document.ready
:不是JavaScript, $(document).ready
是jQuery。 改用DOMContentLoaded :
$(document).ready(function(){
// dom ready
alert("hello");
});
在现代浏览器中(请参阅上面的链接中的支持),它等效于
window.addEventListener("DOMContentLoaded",function() {
// dom ready
alert("hello");
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.