2014-02-12 4 views
0

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

Все мои функции плагина jquery перестали работать на реальном сервере.

Они все еще работают локально, и все внешние файлы javascript должны быть одинаковыми.

Я получаю сообщение $(...).whatever is not a function на все из них. Я не уверен, что я изменил, что вызвало это. Файл обнаружен, и я не сделал ничего, чтобы повлиять на область действия.

Любые идеи?

+0

Глупый меня. Включая загруженный контент AJAX, содержащий конфликтующие скрипты. Напугало меня. Думаю, мне лучше удалить этот скрипт, поскольку он предназначен только для визуального представления фактического элемента. –

ответ

0

Поскольку это довольно неприятная проблема, которая, без сомнения, столкнется позже с другими, вот несколько более подробная информация о причине и решении этой проблемы.

Проблема: я загружал в содержании, который содержал <script></script>, которая сломала мою главную страницу при загрузке JavaScript (JQuery) на самом деле, что конфликтный с ним. Это сделало мои пользовательские плагины бесполезными.

Просто визуализируйте script блоки, бесполезные для загруженного содержимого AJAX. Вот как.

Как удалить <script> блоки из AJAX загружен содержание:

Я попробовал несколько различных методов, но в конце концов это один оказался самым надежным:

$.ajax(url,{ 
    success: function(data){ 
    data = data.replace(/<script(?:.*)>/gi,'<!--[Script Removed]>>>'); 
    data = data.replace(/<\/script>/gi,'<<<[Script Removed]-->'); 
    $('.faux-container').html(data); 
} 
}); 

Он преобразует <script> блоки в безвредные HTML-комментарии, и решил мою проблему.

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