簡體   English   中英

<textarea>內&lt;foreignObject&gt;中的內容按預期在Chrome中處理,但在Firefox中未處理

[英]<textarea> inside <foreignObject> handles as expected in Chrome but not Firefox

我正在SVG中的foreignObject內部創建一個textarea,如下所示:

var doc = document.getElementById("cover");
var foreign = document.createElementNS(svgNS,"foreignObject");
var textarea = document.createElementNS("http://www.w3.org/1999/xhtml","textarea");

foreign.setAttributeNS(null,"x",40);
foreign.setAttributeNS(null,"y",40);
foreign.setAttributeNS(null,"width",500);
foreign.setAttributeNS(null,"height",200);
doc.appendChild(foreign);

textarea.setAttributeNS(null,"xmlns","http://www.w3.org/2000/xmlns/");
textarea.textContent = "Text goes here.";
foreign.appendChild(textarea);

在Chrome中可以正常使用。 但是,在Firefox中,我根本看不到文本區域。 當我檢查Firebug時,它確實存在,但是firefox對其進行了強制靜態定位,並且根據我的滾動方式,懸停在html選項卡中的對象上的突出顯示的框不一定在svg內。 即使是這樣,我也看不到文本區域。 如何在Firefox中解決此問題? 作為參考,我正在使用兩種瀏覽器的最新版本(幾個小時前已更新)。

如果我更改此行, 對我有用:

textarea.setAttributeNS(null,"xmlns","http://www.w3.org/2000/xmlns/");

對此:

textarea.setAttributeNS("http://www.w3.org/2000/xmlns/","xmlns","http://www.w3.org/2000/xmlns/");

我認為Firefox對命名空間的要求更加嚴格。 這可能是一個錯誤,但是這表明接受 http://www.w3.org/2000/xmlns/進行DOM處理已被接受

前綴xmlns:被指定為聲明名稱空間的語法設備,但1999年1月名稱空間規范並未將其本身與任何名稱空間名稱相關聯。 但是在某些處理上下文中,例如DOM ,將所有XML屬性表示為(名稱空間名稱,本地名稱)對很有用。 為此,分配了名稱空間名稱http://www.w3.org/2000/xmlns/

暫無
暫無

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

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