#jquery #asp.net #ajax
#jquery #asp.net #ajax
Вопрос:
Я пытаюсь запустить jQuery и веб-методы с ASP.NET ; Я добавил ScriptManager на главную страницу и содержимое на странице содержимого
<asp:Content ID="ch" ContentPlaceHolderID="cHead" runat="server">
<script language="javascript" type="text/javascript">
$(document).ready(function () {
alert("hi");
});
</script>
</asp:Content>
Однако это никогда не срабатывает, чего мне не хватает?
Комментарии:
1. JavaScript работает в jQuery 1.6, как показано здесь: jsfiddle.net/VRA98 Что-то еще не так. Отображается ли в вашем браузере значок ошибки для JavaScript? Когда вы просматриваете исходный код своей страницы, присутствует ли там JavaScript? (Возможно, код на стороне сервера скрывает элемент управления, содержащий JavaScript).
2. опубликуйте свой jquery с включенным кодом..
Ответ №1:
Проверьте следующие шаги.
- Вы включили jquery
- Проверьте наличие ошибок в firebug
Эти вещи должны решить проблему
Комментарии:
1. Если это не помогло и вы не получаете ошибок, попробуйте выполнить некоторые
console.log('step info')
шаги и посмотрите, все ли они выводятся на консоль в нужное время… потому что: в некоторых случаях ошибок jQuery МОЖЕТ завершаться автоматически …
Ответ №2:
Одна из возможностей, когда ready
перестает работать, заключается в том, что у вас где-то есть код javascript, который выдает исключение в вызове $(document).ready(...)
or $(...)
, который останавливает обработку остальных ready
блоков. Определите отдельную страницу, на которой это происходит, и изучите ее на предмет возможных ошибок в других местах.
Комментарии:
1. У меня была похожая проблема — на моей странице действительно было несколько ошибок, связанных с jQuery. Как только они были исправлены, все заработало.
2. Для меня это произошло потому, что я забыл сделать
bower install
для установки некоторых сторонних библиотек JS. Когда я попытался загрузить один из файлов из этих библиотек, Laravel вместо этого отобразил страницу 404, которая, очевидно, выдала ошибку из-за содержания кода, отличного от JS.3. Жаль, что я не нашел ваш ответ раньше! Спасибо.
4. Спасибо, для меня это тоже было причиной проблемы. Я не думал, что ошибки в других блоках остановят все document.readys
5. Это была именно моя проблема. Функция JS беззвучно выдавала исключение, уничтожая весь мой оставшийся javascript. Исправление этого неперехваченного исключения исправило его. Голосуйте за меня! 😉
Ответ №3:
Вместо того, чтобы использовать это:
$(document).ready(function() { /* your code */ });
Используйте это:
jQuery(function($) { /* your code */ })(jQuery);
Он более лаконичен и выполняет то же самое, он также не зависит от $
переменной, которая является объектом jQuery.
Комментарии:
1. Проверьте свои комментарии, этот код не будет работать. Комментарий должен быть
/* your code */
и ваш пример был бы правильным2. @harshal lonare, да, это работает с этим кодом, но почему не с $ (document)?
3. что вы имели в виду под (jQuery), это раздражает мой скрипт
Ответ №4:
Проверьте, должен ли ваш скрипт быть записан или загружен по ссылке jQuery.
<script type="text/javascript" src="js/jquery-3.2.1.min.js"></script>
//after link >> write codes...
<script>
$(document).ready(function(){
//your code
})(jQuery);
</script>
Ответ №5:
Это произойдет, если главной страницей является HTTPS, а включенный исходный путь javascript — HTTP. Два протокола должны быть одинаковыми, HTTPS. Первым признаком было бы проверить Firebug и заметить, что к JS «запрещен доступ».
Ответ №6:
Я скопировал вставленный мой inline-файл js
из какого-то другого .php
проекта, внутри этого блока кода был какой-то php
код, выводящий некоторое значение, теперь, поскольку переменная не была определена в моем новом файле, она выдавала типичный php
undefined warning/error
, и из-за этого js
код был перепутан и не реагировал ни на одно событие, даже alert("xyz");
беззвучно завершался сбоем!! Хотя ошибочная строка была намного ближе к концу файла, все равно js
это тоже просто исчезло бы,
без каких-либо ошибок!!! >:(
Теперь одна вещь, которая сбивает с толку, заключается в том, что консоль / вывод отладчика не выдавала никаких подсказок / ошибок / предупреждений вообще, js
умирал молча.
Поэтому попробуйте проверить, есть ли у вас php
встроенный код с js
, и посмотрите, выдает ли он какую-либо ошибку. После удаления / сортировки ваш js
должен работать нормально.
Ответ №7:
function pageLoad() {
console.log('pageLoad');
$(document).ready(function () {
alert("hi");
});
};
проблему создает ScriptManager ajax
вместо этого используйте pageLoad()
Ответ №8:
Взгляните на одну из возможностей:
<script language="javascript" type="text/javascript" src="./jquery-3.1.1.slim.min.js" />
против
<script language="javascript" type="text/javascript" src="./jquery-3.1.1.slim.min.js"></script>
Первый метод на самом деле неверен, однако браузер вообще не жалуется.
Вы должны быть уверены, что вы действительно закрываете тег javascript надлежащим образом.
Ответ №9:
У меня была похожая проблема, но я решил ее таким образом:
// wait until DOM is loaded
$(document).ready(function(){
console.log("DOM is ready");
// wait until window is loaded (images, links etc...)
window.onload = function() {
console.log("window is loaded");
var your_html_element = document.getElementById("your_html_element_ID"),
};
});
Ответ №10:
Я перепробовал все решения здесь и больше часа искал в Интернете.
Оказалось, что моя проблема заключалась в необходимости очистки кэша. Я заметил, что то, что у меня было в localintranet.js не отражал то, что я ввел. Я проверил это, (В Chrome) открыв инструменты разработки с помощью F12, нажав на пункт меню «Источники» и затем перейдя к папке «Мои скрипты» и фактическому имени файла .js.