[问题]
使用以下JS在同一页面上消除其他JS内容(facebook Like按钮)。 (仅限Google Chrome) 这个错误是由JS。
引起的[问题]
为什么会发生错误? 这个解决方案是对的吗? 如果您有任何想法,可以告诉我吗?
我试图使“text”具有document.write()部分而没有document.open()和document.close()。 但是,它并没有导致其他JS内容消失。
[目标代码]
这个javascript在iframe中执行。 然后,iframe将以iframe输出。
View.prototype.make_iframe = function(id, text) {
var doc, iframe, isIE;
iframe = document.createElement("iframe");
iframe.width = 0;
iframe.height = 0;
iframe.id = id;
document.body.appendChild(iframe);
doc = iframe.contentWindow.document;
/* Problem part start */
doc.write("<html><head></head><body>");
doc.write(text);
doc.write("</body></html>");
/* Problem part end */
};
View.prototype.get_tag_files = function(dir, fname, data, make_iframe) {
var xmlObj;
xmlObj = null;
if (window.ActiveXObject) {
xmlObj = new ActiveXObject("Msxml2.XMLHTTP");
} else {
xmlObj = new XMLHttpRequest();
}
xmlObj.onreadystatechange = function() {
var i, item, tag, text, _i, _len;
if (xmlObj.readyState === 4 && xmlObj.status === 200) {
text = xmlObj.responseText;
tag = new Tag(data, text);
tag.replace();
return make_iframe(fname, tag.get_tag());
}
};
xmlObj.open("GET", dir + fname, true);
return xmlObj.send(null);
};
[解决]
/* target part */
doc.write("<html><head></head><body>");
doc.write(text);
doc.write("</body></html>");
==>
/* replaced target part */
isIE = /MSIE/.test(window.navigator.userAgent);
if (!isIE) {
doc.clear();
doc.open;
}
doc.write("<html><head></head><body>");
doc.write(text);
doc.write("</body></html>");
if (!isIE) {
return doc.close();
} else {
return;
}
致:第一位评论者
感谢您的回复。
我尝试使用appendChild函数。 但是,它不起作用。 “text”变量有一些HTML和JS标记,可以从其他服务器获取数据。 当我使用appendChild而不是document.write函数时, 标签无法通过网络与其他服务器通信。 我不知道原因。
此代码由coffee脚本编译器生成。 而咖啡脚本代码具有视图类,因此代码具有原型。 原始代码(咖啡脚本)紧随其后。
Tag = require("../src/tag").Tag
class View
constructor: (data) ->
@validated = data
@viewid = "product"
make_iframe: (id,text) ->
iframe = document.createElement("iframe")
iframe.width = 0
iframe.height = 0
iframe.id = id
document.body.appendChild(iframe)
doc = iframe.contentWindow.document
isIE = /MSIE/.test(window.navigator.userAgent)
if !isIE
doc.clear()
doc.open
doc.write("<html><head></head><body>")
doc.write(text)
doc.write("</body></html>")
if !isIE
return doc.close()
else
return
get_tag_files: (dir,fname,data,make_iframe) ->
xmlObj = null
if window.ActiveXObject
xmlObj = new ActiveXObject("Msxml2.XMLHTTP")
else
xmlObj = new XMLHttpRequest()
xmlObj.onreadystatechange = ->
if xmlObj.readyState == 4 && xmlObj.status == 200
text = xmlObj.responseText
tag = new Tag(data, text)
tag.replace()
make_iframe(fname,tag.get_tag())
xmlObj.open("GET", dir+fname, true)
xmlObj.send(null)
output_tags: (tags, path) ->
for tag in tags
@get_tag_files(path, tag, @validated, @make_iframe)
return """
"""
exports.View = View