场景:我的公司希望在我们的客户门户网站上拥有“内容构建器”。使用此内容构建器,用户可以检查他们请求的内容(例如:关于公司,关于我们的产品等)。
选择选项后,我想向用户提供他们可以在其网站上放置的脚本。运行时,脚本中的参数将伸出,调用我们的CMS以获取相应的副本,并返回应在其浏览器中显示的标记。
我的问题是.. 我是如何这样做的?我知道如何从CMS获取HTML,但是如何将数据写回DOM?我应该只嵌入一个IFRAME吗?我可以在主机网站上写出div标签吗?任何建议都表示赞赏,提前谢谢。
答案 0 :(得分:1)
虽然稍微了解具体内容会有所帮助,但基本的想法是使用DOM元素的innerhtml属性来放置内容。例如,如果你有一个id为“contentbox”的div,你可以写:
var x = htmlstringfromcms();
document.getElementById("contentbox").innerhtml=x;
如果你想追加,而不是覆盖元素的内容,试试
var x = htmlstringformcms();
document.getElementById("contentbox").innerhtml+=x;
答案 1 :(得分:1)
您可以创建标记以插入页面。
您可以将id属性添加到嵌入到外部网站的脚本标记中,并让脚本标记准确放置在您希望内容显示的位置。
<script id="myscripttag" src="..."></script>
然后使用下面的代码在脚本标记之前插入标记。
var insertMarkup = function(){
var scripttag = document.getElementById('myscripttag'),
YOURCONTENT = '<h1>hello</h1>',
//parentNode of script tag
p = scripttag.parentNode,
//new element to hold your content
n = document.createElement("div");
n.id = 'mynewdiv';
n.innerHTML = YOURCONTENT;
p.insertBefore(n,scripttag);
};