2015-06-11 5 views
-1

Сам ответа на этот вопрос:Javascript текущего скрипт Тег

Использование document.currentScript не поддерживается IE.

Использование

var scripts document.getElementsByTagName('scripts'); 
var script=scripts[scripts-1] 

не работает асинхронно.

Я столкнулся с очень редким случаем, когда использование DOM-селекторов также не было вариантом.

ie document.getElementById('myScript'); 

Есть ли способ выполнить сценарий, где «this» относится к тегу сценария?

ответ

0

для предыдущего обсуждения по этому вопросу см

How may I reference the script tag that loaded the currently-executing script?

Мое решение было это сделать ...

<h1> 
    <script onload='new Function(this.innerHTML).call(this)' src=' '> 
       if(this!=window){ 
        this.parentNode.innerHTML='HELLO THERE!'; 
       } 
    </script> 
</h1> 

IE требует атрибута SRC, чтобы иметь по крайней мере один пробел. src = '' не будет работать в IE.

+0

Настройка Afaik 'src' будет блокировать встроенный скрипт в теге скрипта. – Teemu

+0

@Teemu Да. Условие if (this! = Window) не было необходимым в современных FF и IE по той причине, о которой вы упоминаете, но я оставил его там, так как я не тестировал каждую версию браузера. – user2782001