Informace o document.currentScript
byl přidán k tomuto příspěvku. document.currentScript
by měla být považována za lepší možnost.
Jsou chvíle, kdy obsah externího skriptu může chtít odkazovat na svůj vlastní SCRIPT
štítek. Někdy mohou vývojáři chtít zjistit atributy značky skriptu, které fungují jako volby pro skript; toto je praxe, kterou Dojo Toolkit provádí již léta. Zvýrazňovač syntaxe Prism od Lea Verou také používá tento postup:
<!-- Traditional Dojo config --> <script src="//ajax.googleapis.com/ajax/libs/dojo/1.8.3/dojo/dojo.js" data-dojo-config="async: true"></script> <!-- Sample Prism config --> <script src="prism.js" data-default-language="markup" data-manual></script>
Jak tedy tyto projekty získávají správný tag SCRIPT, pomocí kterého lze hledat atributy? Za předpokladu shora dolů (ne async) načtení skriptů, následující dostane skript vlastní značku:
/* From in side the script.... */ // Reliably grab my script tag var script = document.getElementsByTagName("script"); script = script[script.length - 1]; // Check for an attribute/config if(script.hasAttribute('data-something')) { // Do something! }
Sbírejte SCRIPT
prvky až do tohoto bodu a odkazujte na poslední – to je vše, co musíte udělat. Samozřejmě, že právě teď žijeme v převážně asynchronním světě, takže pro tyto případy možná budete muset nalepit ID
na SCRIPT
dejte šanci, že odpovídá SCRIPT
podle cesty (opravdu špatný nápad) nebo použijte jiný typ konfiguračního systému.
document.currentScript
A document.currentScript
vlastnost také existuje a tato standardní vlastnost poskytuje maximální spolehlivou metodu detekce aktuálně spuštěného skriptu:
var script = document.currentScript;
Spárováním této metody se starším řešením by nejlepší kompletní řešení kódu mohlo být toto:
var script = document.currentScript || (function() { var scripts = document.getElementsByTagName("script"); return scripts[scripts.length - 1]; })();