Javascript 跨域加载和执行JS
我正在使用javascript加载JS文件:Javascript 跨域加载和执行JS,javascript,Javascript,我正在使用javascript加载JS文件: window.onload = function() { var fileref=document.createElement('script') fileref.setAttribute("type","text/javascript") fileref.setAttribute("src", "js/index.js") document.getElementsByTagNa
window.onload = function() {
var fileref=document.createElement('script')
fileref.setAttribute("type","text/javascript")
fileref.setAttribute("src", "js/index.js")
document.getElementsByTagName("head")[0].appendChild(fileref)
}
js文件有以下行
document.write('<a href="#" target="_blank">link</a>');
document.write(“”);
我确信文件已加载(使用alert()测试),但由于某些原因,在我的页面上找不到锚。似乎也没有任何js错误
如果页面中包含相同的行,则可以直接使用
仅供参考:此JS用于跨域安装的插件。我知道这可能有局限性,但希望得到任何指导。
谢谢您
文档。编写
只对与页面解析内联执行的脚本有用。如果稍后调用document.write
,它会隐式执行document.open
,这会清除页面内容。考虑到你所描述的,我不知道你为什么看不到
在初始页面加载后添加内容时,使用DOM,例如:
var a = document.createElement('a');
a.innerHTML = "link";
a.href = "#";
a.target = "_blank";
document.body.appendChild(a); // Or, of course, append to something more targeted
就跨域加载脚本而言,这根本没有问题。您所做的一切都很好,不过您可以将其缩短一点,最好不要依赖JavaScript自动插入分号的恐怖:
var fileref = document.createElement('script');
fileref.src = "js/index.js";
document.documentElement.appendChild(fileref);
不需要
type
(默认为JavaScript),并且src
是一个反射属性(如果您确实想继续并使用它,就如同type
)。无需将脚本附加到head
元素,document元素(html
)中的任何位置都可以。文档。write
仅适用于与页面解析内联执行的脚本。如果稍后调用document.write
,它会隐式执行document.open
,这会清除页面内容。考虑到你所描述的,我不知道你为什么看不到
在初始页面加载后添加内容时,使用DOM,例如:
var a = document.createElement('a');
a.innerHTML = "link";
a.href = "#";
a.target = "_blank";
document.body.appendChild(a); // Or, of course, append to something more targeted
就跨域加载脚本而言,这根本没有问题。您所做的一切都很好,不过您可以将其缩短一点,最好不要依赖JavaScript自动插入分号的恐怖:
var fileref = document.createElement('script');
fileref.src = "js/index.js";
document.documentElement.appendChild(fileref);
不需要
type
(默认为JavaScript),并且src
是一个反射属性(如果您确实想继续并使用它,就如同type
)。无需将脚本附加到head
元素,document元素(html
)中的任何位置都可以。document.write不是您想要在这里使用的,因为它更适合内联JS(html文档中的JS)。无法使用.innerHTML
将超链接写入DOM(请确保要修改innerHTML的元素已加载)
document.write不是您想要在这里使用的,因为它更适合于内联JS(HTML文档中的JS)。无法使用
.innerHTML
将超链接写入DOM(请确保要修改innerHTML的元素已加载)
效果很好!只是快速跟进。如何将样式属性添加到锚点?a、 风格似乎不起作用。再次感谢!明白了。setAttribute(“样式”,“颜色:红色”)。。。etc@salmane:您可以使用
style
属性:a.style.color=“red”
对于背景色
,可以使用camelCase名称:a.style.backgroundColor=“#aaa”代码>。谢谢!我有一个更长的样式属性列表,也许使用setAttribute更有效。除非你另有想法?@salmane:我从未使用过setAttribute
来设置样式信息,所以我现在不知道跨浏览器的兼容性如何。从表面上看,你希望一切都会好起来。顺便说一句,这是我推荐使用、或这样的好库的原因之一。例如,查看jQuery的函数。非常好用!只是快速跟进。如何将样式属性添加到锚点?a、 风格似乎不起作用。再次感谢!明白了。setAttribute(“样式”,“颜色:红色”)。。。etc@salmane:您可以使用style
属性:a.style.color=“red”
对于背景色
,可以使用camelCase名称:a.style.backgroundColor=“#aaa”代码>。谢谢!我有一个更长的样式属性列表,也许使用setAttribute更有效。除非你另有想法?@salmane:我从未使用过setAttribute
来设置样式信息,所以我现在不知道跨浏览器的兼容性如何。从表面上看,你希望一切都会好起来。顺便说一句,这是我推荐使用、或这样的好库的原因之一。例如,查看jQuery的函数。