从iframe获取文本和设置范围

时间:2014-05-19 13:27:50

标签: javascript html iframe range

我必须更改iframe中显示的HTML文档中部分文本的样式。

我有一个json文件,其中有应该修改的文本的开始/结束/ id。

我的问题是我无法设置文字范围。

 var r = document.createRange();
 var node = document.getElementById("file").contentWindow.document.getElementById("d1e152");
 r.setStart(node, 0);
 r.setEnd(node, 12);

文件是iframe的ID,而 d1e152 是段落的ID。 它返回“TypeError:Range.setStart的参数1不是对象。” r.setStart()行中的错误。

1 个答案:

答案 0 :(得分:0)

node之类的声音为空。这可能是出于众多原因之一,但我猜您在iframe完全加载之前尝试在iframe中检索元素,因此您需要等待{{1}或者一个事件处理程序。

另一个不是您当前问题的问题是,在iframe的文档而不是主文档上创建范围是一个好主意。根据{{​​3}},它不应该重要,但我确实在旧浏览器中遇到过问题。现在不能记住细节。

window.setTimeout()