<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<title>Getting Started With PubNub</title>
</head>
<body>
HotelName: <input type="text" id="rname"/> <br/>
<input type = "button" value = "Submit" onclick = "publish()"/>
<script src="https://cdn.pubnub.com/pubnub.min.js"></script>
<script charset="utf-8">
(function(){
var PUBNUB_demo = PUBNUB.init({
publish_key: 'demo',
subscribe_key: 'demo'
});
PUBNUB_demo.subscribe({
channel: 'b',
message: function(m){console.log(m)},
connect : publish
});
function publish() {
var hn = document.getElementById('rname').value
var hname = JSON.stringify(hn);
PUBNUB_demo.publish({
channel: 'a',
message: {"text":hn}
});
}
})();
</script>
</body>
</html>
В этом onclick='publish()'
не выполняется. Показанная ошибка: Uncaught ReferenceError: publish is not defined
. Хотя я уже определил функцию публикации. Функция публикации должна получить значение текстового поля и добавить JSON, который я отправляю в функцию публикации.Невозможно вызвать функцию javascript, используя событие onclick
Публикация() прилагается и не публикуется; он доступен только в рамках родительской функции. Вам нужно вытащить его за пределы обертки, чтобы он был доступен. –
@BrianMains Это не обертка jQuery, это IIFE. –
Да, спасибо @ AlexanderO'Mara Я думал, что вижу $, но вы правы. –