在div中执行javascript

时间:2013-04-01 17:01:19

标签: javascript

问题已更新。在底部更新 -

我必须在页面上放置脚本。不幸的是,我无法控制页眉或页脚甚至是身体标签。所有,我有一组内部html进入包装DIV内部,它位于body标签内。像这样:

<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都存在于框架标签内(框架集下)。这会有所作为吗?

4 个答案:

答案 0 :(得分:1)

修改

我看到你正在尝试加载外部javascript文件 - 你确定该文件存在吗?


相反,在document ready事件中包含一些javascript:

以下是使用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>标记中 - 这样代码就会在页面上的元素加载后运行。

答案 1 :(得分:0)

禁用XSS过滤器。

作为安全审核员,我刚刚意识到Chrome和Internet Explorer(IE)都在呈现我的警报()。

使用以下命令运行chrome:

C:\Program Files (x86)\Google\Chrome\Application>chrome.exe --disable-xss-auditor

答案 2 :(得分:0)

Javascript需要触发事件。与上面提到的另一张海报一样, document.ready 是文档加载事件。大多数其他事件是用户触发的,如鼠标点击等。您不能只是将Javascript放在HTML文件的中间,并期望它执行。它需要绑定到事件

答案 3 :(得分:0)

只是评论:document.ready:不是javascript,$(document).ready是jQuery。请改用DOMContentLoaded

$(document).ready(function(){
// dom ready
   alert("hello");
});

在现代浏览器中(参见上面链接中的支持),它等同于

window.addEventListener("DOMContentLoaded",function() {
// dom ready
   alert("hello");
});