2009-10-04 9 views
5
<div style="display:none;"> 
    <div id="wmd-editor" class="wmd-panel"> 
     <div id="wmd-button-bar"></div> 
     <textarea id="wmd-input"></textarea> 
    </div> 
    <div id="wmd-preview" class="wmd-panel"></div> 
    <div id="wmd-output" class="wmd-panel"></div> 
</div> 

Zobacz, śledzę wmd-test.html z derobins-wmd, z wyjątkiem umieszczenia tego w ukrytym dziale div.Jak ukryć edytor wmd początkowo?

uncaught exception: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsIDOMNSHTMLTextAreaElement.selectionStart]" nsresult: "0x80004005 (NS_ERROR_FAILURE)" location: "JS frame :: http://localhost/derobins-wmd-980f687/wmd.js :: anonymous :: line 490" data: no] 
uncaught exception: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsIDOMNSHTMLTextAreaElement.selectionStart]" nsresult: "0x80004005 (NS_ERROR_FAILURE)" location: "JS frame :: http://localhost/derobins-wmd-980f687/wmd.js :: anonymous :: line 490" data: no] 

Odpowiedz

3

Możesz użyć techniki off-left, jeśli wtyczka nie lubi elementów nie mających wysokości/szerokości.

<div style="position: absolute; left: -1000px; width: 100px"> 
+0

To świetny hack! – Misier

8

Oprócz ukrywa cały panel z textarea wewnątrz niego, trzeba się upewnić, że sama textarea ma display:none i problemy będą disapear wtedy. W przeciwnym razie wmd nie wykryje, że obszar tekstowy nie wyświetla się i spróbuje wykonać obliczenia, a otrzymasz wyjątki, takie jak powiedziałeś.

Po prostu wyłączenie elementów z ekranu jest niemożliwe lub co najmniej bardzo kłopotliwe w niektórych układach. Co więcej, screenreadery nadal będą wykrywać te elementy, a dostępność będzie ucierpiała.

Zgaduję, że rozwiązałeś już problem, ale mam nadzieję, że ci to pomoże.

+0

Dzięki, miałem ten sam problem, googled to i znalazłem to. Dodanie 'display: none' do textarea tak samo jak do wrapper div działało. –

+0

Warto zauważyć, że jeśli używasz kart jQuery (w ten sposób odkryliśmy ten problem), możesz po prostu dodać css '.ui-tabs-hide textarea {display: none; } 'i będzie to miało podobny efekt. –