Autor Zpráva
lordfrikk
Profil
Zdravím, potřeboval bych radu, jak odstranit SCRIPT elementy ještě před tím, než se aktivují na stránce. Jeden nejmenovaný web používá rámce a já bych v rámci tréninku rád tyto odstranil a načetl pouze hlavní obsahovou stránku, ale bohužel v ní je zahrnut skript, který ji vždy zpět načte do rámců, pokud zjistí, že je zobrazena samostatně.

Zkoušel jsem to přes XPath, ale bohužel to nejspíše na SCRIPT element nezabírá.

function removeElement(ElementXpath)
{
	var alltags = document.evaluate(ElementXpath,document,null,XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE,null);
	for (i=0; i<alltags.snapshotLength; i++)
	{
		element = alltags.snapshotItem(i);
		element.parentNode.removeChild(element); // Remove this element from its parent.
	}
} 

removeElement('//script');

sysel
Profil
Ve většině prohlížečů lze JavaScript celkově vypnout, někdy lze omezit i jen některé jeho činnosti.
lordfrikk
Profil
To je k ničemu...
_es
Profil
lordfrikk:
Neviem, či som to správne pochopil, no ak do svojej stránky načítaš do nejakého rámu obsah z iného webu, tak prehliadač blokuje prístup k obsahu toho rámu cez JavaScript.
sysel
Profil
Nevím, jakým způsobem se pokoušíte vklínit svůj kód do stránky, ale pokud se před načtením stránky podaří vložit prázdnou definici téže funkce, která působí to přivolání původních rámců, tj. něco jako:
<script>function frameCheck(){};</script></html>
pak by to mělo původní definici vyřadit z činnosti. Ale nevím, zda to není boj s větrnými mlýny.
lordfrikk
Profil
Pokouším se vytvořit Greasemonkey skript, který by tohle uměl. Ten se v pohodě dokáže spustit dřív než se načte stránka; problém je v tom, jak odstranit celý tag skript? Všechny ostatní tagy jsou bez problému. Zaměnit funkci za prádnou jde jednoduše, ale bohužel tento konkrétní skript není zaobalen v žádné funkci, pouze mezi tagy <script>.

Ukázka jak lze jednoduše nahradit funkci: Skript - Testovací web (stačí kliknout na jakýkoli externí odkaz)

Jedná se o tento web. Stránka trpí klasickými neduhy rámů, tzn. při znovu-načtení se obnoví tam, kam ukazuje adresa samozřejmě, což ve většině případů není tam kam chceme.
_es
Profil
lordfrikk:
Nepoznám funkčnosť toho doplnku, preto som radil možno trochu mimo.
O ktorú všetky časti skriptu sa jedná, ktoré treba znefunkčniť?
Asi stačí znefunkčniť vlastnosť parent napríklad takto:
var parent=0;

Vaše odpověď

Mohlo by se hodit

Neumíte-li správně určit příčinu chyby, vkládejte odkazy na živé ukázky.
Užíváte-li nějakou cizí knihovnu, ukažte odpovídajícím, kde jste ji vzali.

Užitečné odkazy:

Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0