1

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

到目前为止,我有一个 PHP 脚本生成 javascript 代码,看起来像这样:

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

然后可以将其加载到带有该标签的任何 html 页面上。

现在我正在计划重新设计并想用服务器端的 javascript 来做 PHP 部分。我还需要输出 document.write() 还是现在有更聪明的方法,因为我们有handlebarjs、node.js 等。另外:我会对那些新的花哨的自动更新功能框架感兴趣,比如流星或德比提供...

(我想使用流星(meteor.com)来完成这项工作,但流星输出完整的 html 页面,我不需要整个页面)

感谢您的帮助/建议

4

3 回答 3

2

现在我正在计划重新设计并想用服务器端的 javascript 来做 PHP 部分。我还需要输出吗document.write()

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

客户端代码将或多或少独立于服务器端代码(尽管如果您开始使用mojito等工具,您可能会得到一些交叉。

还是现在有更聪明的方法,因为我们有 handlebarjs、node.js 等。

node.js 对你输出的内容没有帮助,因为它是一个服务器,修改页面的 JS 必须在浏览器中运行。

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

于 2013-01-11T11:01:16.300 回答
1

当您想向现有的 HTML 文档添加新的 div 时,您应该通过将新的 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 创建这些节点,并使用 appendChild 将它们附加到新创建的 div 中。

于 2013-01-11T10:55:01.203 回答
-1

看看这些:document.createElementdocumentFragment

于 2013-01-11T10:55:03.610 回答