文件写入是将 html 写入第三方网站以实现企业品牌的首选方式吗?
Is document write the preferred way to write html to a third party site for corporate branding?
我有一个现有的页眉和页脚导航,我想将其应用于各种平台上的第三方应用程序和网站。
理想情况下,我想指示供应商在文档的 HEAD 中添加一个脚本标记,然后使用 javascript 执行以下操作:
- 将样式表添加到文档头部
- 在结束正文标签之前添加脚本标签(jquery 和其他库以及一个 app.js)
- 然后 app.js 将依靠 jQuery 在开始正文标记和其他 dom 操作(添加 类、删除元素等)
我在reviewing this discussion之后-文档写在给第三方的初始脚本标签中是最好的解决方案吗?
谢谢。
您无需 document.write();
即可将代码注入头部。如果他们将您的远程 JavaScript 文件嵌入到他们页面的任何位置,您应该能够将 script/style 元素附加到头部。
var myScript = document.createElement('script');
myScript.setAttribute('src', '...');
myScript.setAttribute('type', 'text/javascript');
document.getElementsByTagName('head')[0].appendChild( myScript );
如果您查看 Google Analytics 嵌入代码,您会发现一些相似之处。它足够短,您应该能够弄清楚发生了什么:
<script>
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
})(window,document,'script','//www.google-analytics.com/analytics.js','ga');
ga('create', '...', 'auto');
ga('send', 'pageview');
</script>
我不会为此使用 document.write,因为在加载 window 后调用此方法时,它会清除所有内容,除了您刚刚写入文档的内容。
相反,我会使用 document.createElement() 创建标签,然后使用 appendChild() 将 js 文件或元素添加到元素中,然后添加到文档中。
var script1 = document.createElement("script");
var script1File = document.createTextNode(myfilepath.js);
script1.appendChild(script1File);
document.body.appendChild(script1);
这应该将脚本添加到正文底部。这样,触发器可以在 JS 文件中设置,而无需在每次调用时都将文档擦除干净。冲洗、清洗并重复其他元素。
我有一个现有的页眉和页脚导航,我想将其应用于各种平台上的第三方应用程序和网站。
理想情况下,我想指示供应商在文档的 HEAD 中添加一个脚本标记,然后使用 javascript 执行以下操作:
- 将样式表添加到文档头部
- 在结束正文标签之前添加脚本标签(jquery 和其他库以及一个 app.js)
- 然后 app.js 将依靠 jQuery 在开始正文标记和其他 dom 操作(添加 类、删除元素等)
我在reviewing this discussion之后-文档写在给第三方的初始脚本标签中是最好的解决方案吗?
谢谢。
您无需 document.write();
即可将代码注入头部。如果他们将您的远程 JavaScript 文件嵌入到他们页面的任何位置,您应该能够将 script/style 元素附加到头部。
var myScript = document.createElement('script');
myScript.setAttribute('src', '...');
myScript.setAttribute('type', 'text/javascript');
document.getElementsByTagName('head')[0].appendChild( myScript );
如果您查看 Google Analytics 嵌入代码,您会发现一些相似之处。它足够短,您应该能够弄清楚发生了什么:
<script>
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
})(window,document,'script','//www.google-analytics.com/analytics.js','ga');
ga('create', '...', 'auto');
ga('send', 'pageview');
</script>
我不会为此使用 document.write,因为在加载 window 后调用此方法时,它会清除所有内容,除了您刚刚写入文档的内容。
相反,我会使用 document.createElement() 创建标签,然后使用 appendChild() 将 js 文件或元素添加到元素中,然后添加到文档中。
var script1 = document.createElement("script");
var script1File = document.createTextNode(myfilepath.js);
script1.appendChild(script1File);
document.body.appendChild(script1);
这应该将脚本添加到正文底部。这样,触发器可以在 JS 文件中设置,而无需在每次调用时都将文档擦除干净。冲洗、清洗并重复其他元素。