簡體   English   中英

從iframe獲取文本並設置范圍

[英]Get text and set range from iframe

我必須更改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()行中的錯誤。

聽起來像node為null。 這可能是由於多種原因之一,但是我想您正在嘗試在iframe完全加載之前在iframe中檢索元素,因此您需要等待使用window.setTimeout()或事件處理程序。

另一個不是您直接遇到的問題的問題是,在iframe文檔而非主文檔上創建范圍是個好主意。 根據規范,這沒關系,但是我肯定已經在較舊的瀏覽器中看到了問題。 現在不記得具體情況。

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM