Я хотел бы подвести итог, каким было решение этой проблемы. Вы можете найти полезный URL здесь .
По сути, вы вводите код через тег <script>
страниц при импорте JavaScript. Все, что импортируется через этот тег, выполняется немедленно в глобальном контексте. Поэтому вместо того, чтобы передавать файл JavaScript, передайте URL-адрес веб-сайту, который возвращает страницу, не содержащую HTML-теги, а страницу, которая возвращает текст кода JavaScript, который вызывает обратный вызов в вашем коде.
Вы используете параметры URL, чтобы сообщить странице, какой «обратный вызов» вернуть, и любые параметры, которые необходимо ввести в обратный вызов. Например:
<script type="text/javascript" src="http://crossdomainhost/CrossDomainConsumerSite/Default.aspx?callback=myCallback¶m1=myParam"></script>
Когда это оценено, содержимое страницы, возвращаемое параметром 'src':
myCallback( myParam );
На стороне сервера вы создадите сайт по этому URL, который переопределяет эквивалент OnLoad (с любым языком на стороне сервера, который вы используете). Вместо HTML-кода страницы OnLoad будет принимать параметры URL-адреса и переизбирать их в соответствии с вышеуказанным обратным вызовом.
Когда выполняется подстановка, обратный вызов немедленно вызывается, когда клиент загружает страницу. Преимущество этого заключается в том, что URL 'src' не обязательно должен соответствовать домену размещенной страницы.
Вот как будет выглядеть HTML-страница клиента в конце:
<script type="text/javascript">
var myCallback = function( myParam ) {
alert( "this was called across domains!" );
};
</script>
<script type="text/javascript" src="http://crossdomainhost/CrossDomainConsumerSite/Default.aspx?callback=myCallback¶m=myParam></script>