比document.write()更好的实践来加载网站中的外国内容?

我有一个小部件(一些html代码)应该可以加载在不同的网站(这是不是我的控制下),但小部件托pipe在我的服务器上。

直到现在我有一个PHP脚本生产JavaScript代码看起来像这样:

document.write('<div> ... some more dynamic html ...</div>'); 

然后可以在任何带有标签的html页面上加载。

现在我正在计划重新devise,并希望与服务器端JavaScript做PHP部分。 我仍然需要输出document.write(),或者现在有一个更聪明的方式,因为我们有handlebarjs,node.js等。另外:我会感兴趣的是我喜欢meteor或德比这些新的奇特autoupdatefunction框架提供…

(我想用meteor(meteor.com)做这项工作,但meteor输出完整的HTML页面,我不需要整个页面)

感谢您的帮助/build议

       

网上收集的解决方案 "比document.write()更好的实践来加载网站中的外国内容?"

现在我正在计划重新devise,并希望与服务器端JavaScript做PHP部分。 我还需要输出document.write()

您必须输出会导致内容在客户端上呈现的内容。

客户端代码将或多或less独立于服务器端代码(尽pipe如果您开始使用诸如mojito之类的工具,您可能会进行一些交叉操作。

或者现在有更聪明的方法,因为我们有handlebarjs,node.js等

node.js不会帮你输出什么,因为它是一个服务器,而且修改这个页面的JS必须在浏览器中运行。

可以使用像handlebarjs这样的模板语言。 您可以使用库来帮助DOM操作。 问题在于,你加载的代码越多(包括库),越有可能与embedded代码的第三方网站所使用的东西冲突,而且页面越重(页面重量增加越大对二次内容来说是一个特别糟糕的主意)。

当你想添加一个新的div到现有的HTML文档时,你应该通过在文档树中插入一个新的HTML元素来实现。

 // create a new div var newDiv = document.createElement('div'); // put some text into it newDiv.innerHTML = 'Hello World!'; // the div won't be displayed yet, because it only exists as a // variable in limbo outside of the HTML document tree. We need // to insert it into the document. // First, we get the HTML node where it should be inserted var parentDiv = document.getElementById('id_of_the_div_where_the_new_div_belongs_into'); // then we put it into that div parentDiv.appendChild(newDiv); 

当你想在页面的末尾插入div时(当脚本应该在很多不同的页面上工作时,你无法控制),你也可以插入document.appendChild()。

当新的div不仅包含文本而且还包含其他HTML节点时,还应该使用document.createElement创build这些文本,并使用appendChild将它们附加到新创build的div中。

看看这些: document.createElement , documentFragment