为什么警报不会显示在新窗口中

时间:2015-02-11 17:21:30

标签: javascript html

我正在创建一个带有一些变量的新窗口,如下所示:

var setScript = "<script>alert('test');<//script>";
var w = window.open();
var createBody = $(w.document.body);
var createHead = $(w.document.head);
createBody.html("");
createBody.html(p);
createHead.html(setStyle);
createHead.append(setScript);

我没有在新窗口中看到警报。

如何解决问题。

F12

enter image description here

3 个答案:

答案 0 :(得分:1)

这是你应该做的:

<script>
  (function(){
     var body=document.getElementsByTagName('body')[0],
         head=document.getElementsByTagName('head')[0],
         script=document.createElement('script');

     //Do stuff with body

     script.onload = function() {
      alert("foo");
     };

     head.appendChild(script);
   })();
</script>

答案 1 :(得分:1)

这样的事情? http://jsfiddle.net/swm53ran/222/

在新窗口中使用document.write

<button onclick="myFunction()">Try it</button>
<script>
function myFunction() {
    var myWindow = window.open();
    myWindow.document.write("<script>alert('test');<\/script>");
}
</script>

答案 2 :(得分:1)

您是否检查过错误控制台?

Firebug给我这个:

SyntaxError: expected expression, got '<'


alert('test');<//script>

和@ j08691的评论一样,你应该将你的第一行代码更改为:

var setScript = "<script>alert('test');<\/script>";