2009-07-10 1 views
1

У меня возникают проблемы с загрузкой внешнего javascript с помощью JQuery. Каждый раз, когда я пытаюсь загрузить этот внешний файл, окно браузера становится пустым и в Firefox он перенаправляет на что-то вроде:Загрузка JQuery AJAX внешнего JavaScript заставляет браузер перенаправлять на новое местоположение

WYCIWYG: // 40/http://mydomain.com/myfile.html

То, что я пытаюсь сделать, это загрузить walkscore google map в один из div на странице. Я пытался использовать $ .get() метод, .load(), $ .getScript() и $ .requireScript() jquery плагин, и ничего не работает. ИСКЛЮЧАЕТ один случай, когда я помещаю alert() сразу после $ .get(). В этом случае браузер не перенаправляется нигде, а на странице отображается карта walkscore.

Это мой сценарий в головном разделе:

<script src="http://code.jquery.com/jquery-latest.js"></script> 
<script type="text/javascript"> 

    function loadWalkScore() { $.get("http://www.walkscore.com/tile/show-tile.php?wsid=87439b0626c9eaeacfd6d8d5598afc13",null,null,"script"); } </script> 

сценария в теле страницы:

<div id="contentArea" style="margin: 20px 0px 10px 10px; border: 1px solid #CCC;"> 

<script type="text/javascript"> 
    var ws_lat = "40.710318"; 
    var ws_lon = "-74.016553"; 
    var ws_width = "630"; 
    loadWalkScore(); 
</script> 

</div> 

Просьба также увидеть примеры у меня есть (только первый один работ):

// 1. $ .get() - wor пример короля, имеет предупреждение сразу после метода $ .get()

websvit. ком/закладки/walkscore-с-alert.html

// 2 $ .get() - точно так же, как и выше, без предупреждения, не работает

websvit. ком/закладки/walkscore-get.html

// 3. .load() - загрузка HTML-файл с walkscore JS, не работает

websvit. ком/закладки/walkscore-load.html

// 4. $ .getScript() - не работает

websvit. ком/закладки/walkscore-getscript-external.html

// 5. $ .getScript() локально сохраненные walkscore JS, не работает

websvit. ком/закладки/walkscore-getscript-local.html

// 6. $ .requireScript() - с помощью JQuery плагин, не работает

websvit. com/tabs/walkscore-get-plugin.html

+0

Вы пытаетесь использовать AJAX для загрузки другого сценария JavaScript? –

+1

Используйте firebug для проверки ответа сервера. –

+0

Да mgroves, это правильно – Kelvin

ответ

1

У меня есть решение моей проблемы. Я нашел способ избежать использования ajax для загрузки javascript walkscore, но использовать простой iframe. Если у кого-то будет аналогичная проблема с картой walkscore, я размещаю код здесь.

var ws_lat = "40.710318"; 
    var ws_lon = "-74.016553"; 
    var ws_width = "630"; 
    var ws_height = "300"; 
    var ws_iframe_css_final = "border: 0"; 

    var ws_params = "wsid=87439b0626c9eaeacfd6d8d5598afc13"; 
    ws_params += "&lat=" + ws_lat + "&lng=" + ws_lon; 

    $("#walkscore_map").html('<iframe src="http://www.walkscore.com/serve-tile.php?' + ws_params + '" marginwidth="0" marginheight="0" vspace="0" hspace="0" allowtransparency="true" frameborder="0" scrolling="no" width="' + ws_width + 'px" height="' + ws_height + 'px" style="' + ws_iframe_css_final + '"></iframe>'); 
1

Проблема в том, что они записывают сценарий WalkScore, ваш вызов ajax должен запускаться синхронно (вместо async), чтобы он работал. Именно по этой причине наличие предупреждения() заставляет его работать.

Просмотрев ваш код и просмотрев сценарий, возвращенный вызовом WalkScore, я нашел способ заставить его работать. Вы можете использовать $ .getScript с обратным вызовом и добавить iframe в contentArea DIV. Для этого скрипт WalkScore использует для этого document.write().

Скопируйте сценарий ниже в тег заголовка. Убедитесь, что wsid верен для вашего домена, иначе вы получите пустую страницу. Удалите тег скрипта, который находится в вашем DIV.

<script type="text/javascript"> 
    var ws_lat = "40.710318"; 
    var ws_lon = "-74.016553"; 
    var ws_width = "630"; 
    $(function(){ 
     $.getScript("http://www.walkscore.com/tile/show-tile.php?wsid=87439b0626c9eaeacfd6d8d5598afc13", function(){    
      $('<iframe src="http://www.walkscore.com/serve-tile.php?' + ws_params 
            + '" marginwidth="0" marginheight="0" vspace="0" hspace="0"' 
            + ' allowtransparency="true" frameborder="0" scrolling="no" width="' 
            + ws_width + 'px" height="' + ws_height + 'px" style="' + ws_iframe_css_final + '"></iframe>') 
            .appendTo("#contentArea"); 
     }); 
    }); 
</script> 
+0

Привет, Хосе! Большое спасибо за попытку помочь мне. Я думаю, что все делал так, как вы объясняли, но все равно безуспешно. См. Страницу здесь: http://websvit.com/tabs/walkscore-iframe.html – Kelvin

Смежные вопросы