2017-01-13 58 views
0

我有一个JavaScript代码,这是在iframe中调用的。我想在该JavaScript代码中添加一个标签,并将该标签附加到iframes父主体。这是我的代码添加脚本标记并附加到iframes父体。如何在JavaScript代码中编写脚本标记?

setTimeout(function() { 
     var scriptTag = "<script>alert(1)<"; 
     scriptTag += "/script>"; 
     $("#iframe").contents().find("body").append(scriptTag); 
    }, 5000); 

代码没有工作,那么没有添加脚本标记,也没有表现出任何错误

+1

和问题是什么? – Arkej

+0

代码不能正常工作!!!!!!!!!它既没有添加脚本标签,也没有显示任何错误 – Tina

+0

确切的要求是什么? – M14

回答

0

,如果你创建一个新的脚本元素,并添加到父可能更好地工作。

看到这个职位的详细资料:document.createElement('script') vs <script src="">

这是从上面的链接接受的答案复制的例子。

var s = document.createElement('script'); 
s.src = "..."; 
document.getElementsByTagName("head")[0].appendChild(s); 

src属性是包含脚本的URL。

到脚本的内容直接从您需要回答一个字符串添加到元素: Adding <script> element to the DOM and have the javascript run?

所以你的问题的示例代码是:

var scriptTag = document.createElement('script'); 
scriptTag.type = 'text/javascript'; 
var code = 'alert(1);'; 
try { 
    scriptTag.appendChild(document.createTextNode(code)); 
    $("#iframe").contents().find("body").appendChild(scriptTag); 
} catch (e) { 
    scriptTag.text = code; 
    $("#iframe").contents().find("body").appendChild(scriptTag); 
} 

也看到这个帖子了解更多详情关于如何附加脚本元素:document.head, document.body to attach scripts

0

您的scriptTag是一个字符串,而不是HTML元素,所以您只是附加字符串。你必须使用document.createElement

setTimeout(function() { 
var scriptTag = document.createElement('script'); 
    scriptTag.src = 'alert(1)' 
    $("#iframe").contents().find("body").append(scriptTag); 
}, 5000); 
0

谢谢你们对我没有想出一个办法来添加标签并将其附加到iframe的父母身体的各个AN。

setTimeout(function() {      
       var imported = document.createElement('script'); 
       imported.src = 'src'; 
      parent.document.body.append(imported); 
     }, 5000); 
0

这可能有助于

setTimeout(function() { 
    var scriptTag = "<script>alert(1)</" + "script>"; 
    $("#iframe").contents().find("body").append(scriptTag); 
}, 5000); 
相关问题