我必须动态地将内容添加到我的CMS在其论坛模块中生成的iFrame中。我无法控制HTML。我正在动态添加内容并尝试找到最佳解决方案。
以下是我正在使用的代码:
的 HTML 的
<iframe id="re_contentIframe">
<html>
<body>
<p>Forum content is typed here.</p>
<p>More forum content.</p>
Forum Signature
</body>
</html>
</iframe>
的 JS 的
nestedFrame = myFrame.find('#re_contentIframe').contents().find('body');
nestedFrame.append("Dynamic content" + data); //this is what is inserted dynamically.
这是我遇到的问题。因为我无法控制我的CMS生成的iFrame的代码,因此当我使用上面的代码时,我最终得到类似的内容:
Forum Signature Dynamic content...
我希望将动态内容添加到下面 Forum Signature
。然后我厌倦了这个:
nestedFrame.html("Dynamic content" + data); //this is what is inserted dynamically.
当我这样做时,论坛内容会被.html
然后我尝试了这个:
nestedFrame.append(" <br> Dynamic content" + data);
当我这样做时会打印<br>
。
这是我的问题:
有没有办法将html附加到目标而不擦除那里的html?我无法想办法做到这一点。
答案 0 :(得分:1)
jQuery.parseHTML(str)
将传递的字符串转换为实际的html内容(包括textNodes),而只调用$(str)
将只返回字符串中的元素。
所以
$(" <br> Dynamic content" + data) //=> <br>
$.parseHTML(" <br> Dynamic content" + data) // textNode + <br> + textNode
当您附加字符串时,正如我在评论中提到的那样,您也可以使用insertAdjacentHTML
nestedFrame[0].insertAdjacentHTML(" <br> Dynamic content" + data);
应该与nestedFrame.append($.parseHTML(" <br> Dynamic content" + data));
答案 1 :(得分:0)
有几个选项
var br = document.createElement('br');
并追加他们'<br>'
,在其间使用+ +,而不是100%确定该方法。古德勒克。