[英]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.