Почему этот простой JSFiddle не работает?

Есть код, который я хотел поместить в JSFiddle. Не сработало. Вкратце, я не могу заставить работать даже этот простейший код:

JSFiddle

function displaymessage() {
  alert("Hello World!");
}
<form>
  <input type="button" value="Click me!" onclick="displaymessage()" />
</form>

<p>By pressing the button above, a function will be called. The function will alert a message.</p>

Поле alert не отображается в JSFiddle.


person thomasf1    schedule 12.08.2011    source источник
comment
Не сработало - это не описание проблемы.   -  person Lightness Races in Orbit    schedule 06.03.2012
comment
Возможный дубликат Простой пример не работает с JSFiddle   -  person Sebastian Simon    schedule 08.10.2015
comment
@ thomasf1: измените принятый ответ на более ранний и полный stackoverflow.com/a/7043684/295783   -  person mplungjan    schedule 25.01.2018


Ответы (8)


http://jsfiddle.net/praveen_prasad/XNJxT/14/

Js скрипка так что-то вроде этого к тому, что вы пишете

window.addEvent('load',function(){

//Your code


});

введите описание изображения здесь

person Praveen Prasad    schedule 12.08.2011
comment
Я не понимаю этого ответа. Это объяснение? Решение ? - person Nicolas Barbulesco; 22.01.2015

Выберите No wrap - bottom of <head> в раскрывающемся списке «Тип загрузки» в настройках JavaScript.

Скриншот упомянутого выше раскрывающегося списка

person Igor Dymov    schedule 12.08.2011
comment
Спасибо! Я был уверен, что что-то упустил. Глупый я! - person thomasf1; 12.08.2011
comment
Хорошо, теперь это работает. Но что именно означает no wrap (head)? Что он делает или не делает? - person erik; 13.03.2014
comment
@BlakeWebb перезапустите проект, чтобы изменения вступили в силу. - person weilah; 16.01.2017
comment
И по состоянию на январь 2018 г. - person mplungjan; 25.01.2018
comment
Похоже, что этой опции больше нет. - person Sebastian Simon; 17.05.2020

Вам необходимо вывести свою функцию из onLoad / onReady, иначе она будет помещена в другую область и ваш кнопка не может получить доступ к функции. В вашем случае вам нужно использовать No wrap (head)

Сгенерированный код выглядит так:

Ext.onReady(function() {
    function displaymessage()
    {
        alert("Hello World!");
    }
});
person John Kalberer    schedule 12.08.2011

Измените код, чтобы он запускал «no wrap (head)» вместо «onDomReady». Ваша функция не отображается в вашей разметке как есть.

person FishBasketGordo    schedule 12.08.2011

Возможно, некоторым из вас потребуется переместить свою функцию за пределы document.ready, если вы используете html onclick = "func ()"

$(document).ready(function() {
  ...
}

function func(){
  ...
}
person Shahin Mammadzada    schedule 02.03.2020

Если у вас все еще есть проблемы, проверьте, есть ли у вас

  1. AdBlockers установлены как расширение для браузера? (например, AdBlocker Plus)

введите описание изображения здесь

  1. Отключите AdBlockers в JSFiddle и запустите снова.

Я надеюсь, что это помогает кому-то.

Спасибо.

person Anjana Silva    schedule 28.12.2020

Извините, но ... это намного проще, чем то, что вы предлагаете ...

Если вы хотите вызвать js-функцию с атрибутом «onclick», поместите свой код javascrit прямо в голову, вам не нужно domready или что-то подобное.

Во-вторых, вам нужно включить «javascript:» перед именем функции.

См .: http://jsfiddle.net/XNJxT/1838/

<input type="button" value="Click me!" onclick="javascript:displaymessage()" />
person Korreca    schedule 23.11.2013
comment
Как указано в этом красивом ответе, javascript: не рекомендуется (плохая практика). - person erik; 13.03.2014

Моя проблема заключалась в том, что когда я сделал свой тег скрипта, я напечатал его:

script type="javascript/text"

вместо :

script type="text/javascript"

и теперь это работает.

person zNiine    schedule 13.04.2018