2

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

我必须将脚本放在页面上。不幸的是,我无法控制页眉或页脚甚至正文标记。所有,我有一组内部 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 都存在于框架标签内(在框架集下)。这会有所作为吗?

4

4 回答 4

1

编辑:

我看到您正在尝试加载外部 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>标签中 - 这样代码将在页面上的元素加载后运行。

于 2013-04-01T17:04:38.633 回答
1

禁用 XSS 过滤器。

作为一名安全审计员,我刚刚意识到 Chrome 和 Internet Explorer (IE) 正在呈现我的 alert()。

运行 chrome:

C:\Program Files (x86)\Google\Chrome\Application>chrome.exe --disable-xss-auditor
于 2013-06-24T13:00:18.990 回答
0

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

于 2013-06-24T13:18:44.963 回答
0

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

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

在现代浏览器中(请参阅上面链接中的支持),它相当于

window.addEventListener("DOMContentLoaded",function() {
// dom ready
   alert("hello");
});
于 2013-06-24T13:31:12.940 回答