У меня проблемы с вызовом jQuery AJAX. Мой код работает нормально, когда я запрашиваю страницу без JavaScript, но когда в моем коде есть теги сценария, все начинает становиться странным.
Кажется, что любые теги скрипта, ссылающиеся на внешние URL, вызывают перенаправление браузера. В Firefox страница становится пустой. В Safari страница очищается и загружается с содержимым ответа AJAX. В обоих браузерах URL не меняется.
Чтобы быть конкретным в моей проблеме; У меня есть вкладка, в которую я пытаюсь встроить виджет Walkscore. Поскольку он довольно тяжелый для клиентской части, я хочу загрузить его только после того, как пользователь нажмет на вкладку, в которой он находится. Страница AJAX walkscore выглядит следующим образом:
<script type="text/javascript">
var ws_address = "1 Market St, San Francisco";
var ws_width = "500";
</script>
<script type="text/javascript" src="http://www.walkscore.com/tile/show-tile.php?wsid=MY_WSID">
</script>
Существуют ли какие-либо ограничения на теги сценариев, ссылающиеся на внешние сайты в вызовах AJAX? Есть ли хороший способ обойти это?
- Правка -
Хорошо, я немного поиграл с этим и немного сузил проблему. Позвольте мне попытаться дать лучшее объяснение в то же время:
У меня есть два файла, index.html и walkscore.html
index.html
function widget() {
var widget = $('#walkscore');
$.get('/walkscore.html', function(data) {
$('#loading').slideUp(function() {
widget.html(data);
loaded[name] = true;
widget.slideDown();
});
});
}
walkscore.html - как показано в верхнем блоке кода
В index.html у меня есть ссылка, которая вызывает функцию виджета. Всякий раз, когда я нажимаю эту ссылку, вся страница заменяется выводом файла js. Это происходит независимо от домена, из которого файл js. Кажется, это происходит только с файлами js, в которых есть document.write. Он работает точно так же, когда я использую функцию $ .getScript, даже если он находится в index.html
- Правка -
Кажется, это все связано с document.write. Я сделал копию java-скрипта walkscore и заменил все вхождения document.write на jquery.html, и, похоже, он работает правильно. Я (очевидно) JS Noob. Это ожидаемое поведение document.write? Почему это не происходит, когда я включаю скрипт в загрузку страницы?