Autor | Zpráva | ||
---|---|---|---|
tester Profil * |
#1 · Zasláno: 19. 8. 2016, 10:20:31
Snažím se najít/vrátit tag iframe jehož atribut class obsahuje hodnotu "wysiwyg"
$('iframe').filter(function () { return this.className.match(/\bwysiwyg/); }) ) Problémem je že vrací dva výsledky a ten druhý neobsahuje wysiwyg. A taky bych potřeboval aby to bylo case insensitive, ale není mi jasné co tam dělá to \b. Zkusil jsem to napsat takto: this.className.match(/wysiwyg/i); |
||
juriad Profil |
1) Ta metoda match se provádí nad obyčejným řetězcem, to nemá s Jquery nic společného.
2) To se vážně nemůžeš spolehnout na třídu toho iframe? Je snad někdy jiná než cke_wysiwyg_frame ?
Pokud by ti stačilo jen přesný výskyt (a nikoli case-insensitive), můžeš použít: $('iframe[class*=wysiwyg]')
3) \b znamená, že se jedná o hranici slova; pro podrobnosti viz Regular Expressions. S tím \b by ti to nemělo vrátit žádný iframe, protože "wysiwyg" předchází podtržítko, které je word character. Ta varianta s regexem /wysiwyg/i by měla být správně.
Na té stránce poradte.cz není přilinkované JQuery, takže to nemůžu otestovat. Také tam vidím jen jeden iframe. Můj odhad je, že filter se z nějakého důvodu vůbec neprovede. Opraven překlep todo -> toho |
||
tester Profil * |
#3 · Zasláno: 19. 8. 2016, 10:58:29
Nerozumím co myslíš tím todo iframe? To vidíš kde? Píšu program který by měl být univerzální takže o co se snažím je najít iframe který obsahuje nějaký editor. Nic jiného než hledat ve třídě mě nenapadlo.
|
||
tester Profil * |
Už jsem přišel na to jak to udělat
var iframeDoc = $("iframe[class~='wysiwyg']") Pro aktuální stránku to dělám takto: add_styles = function(task){ for ( var k in task.search ) $(task.search[k]).css(task.css[k]); } task.search obsahuje selektory. task.css obsahuje styly. A tak potřebuju něco předřadit na začátek... co řekne, hledej to uvnitř toho iframu.. body se nachází pod iframeDoc[0] |
||
Časová prodleva: 8 let
|
0