【发布时间】:2015-06-17 16:30:48
【问题描述】:
我正在尝试在 body 标记中使用外部 javascript 函数:
<!DOCTYPE html>
<script type="text/javascript" src="js/Long.min.js"></script>
<script type="text/javascript" src="js/ByteBufferAB.min.js"></script>
<script type="text/javascript" src="js/ProtoBuf.min.js"></script>
<script type="text/javascript" src="js/fs.js"></script>
<script type="text/javascript" src="js/bundle.js"></script>
<script type="text/javascript" src="cordova.js"></script>
<script type="text/javascript" src="cordova_plugins.js"></script>
</head>
<body onload ="heartbeat()">
<h2>A demo for showing the pub/sub between clients and the message broker</h2> <h3>IoTGateway</h3>
Topic :
<input type="text" name="pub"/>
Message:
<input type="text" name="pub"/>
<button onclick="connect()">
Connect
</button>
<br>
<button onclick="publish()">
Publish
</button>
<br>
<h3>BluetoothID</h3> Topic:
<input type="text" name="sub"/>
<button onclick="heartbeat()">
Subscribe
</button>
<br>
<p id = "test"></p>
<p id="sub"></p>
<script>
function heartbeat() {
alert("hello");
try{
MqttPlugin.subscribe({topic: "$EDC/plugin"});
}
catch(err){
alert(err.message);
}
}
/* try{
MqttPlugin.heartbeat({topic: "$EDC/tum/B8:27:EB:A6:A9:8A/HEARTBEAT-V1/mqtt/heartbeat"});
}
catch(err){
alert(err.message);
}*/
function publish() {
MqttPlugin.publish({
topic:"$EDC/plugin",
data:"Mqtt data"
});
}
function subscribe() {
MqttPlugin.subscribe({topic: "$EDC/plugin"});
}
</script>
</body>
</html>
当我使用事件 onclick 调用但因 onload 失败时调用了函数 heartbeat。在 onload 的情况下,它会抛出一个错误 MqttPlugin not defined。是不是因为调用函数的时候,js文件没有加载?有人可以帮我解决这个问题吗?
【问题讨论】:
-
你从未关闭过你的函数
}。 -
你在哪里关闭函数和脚本标签?
-
对不起,我还没有更新我的代码。我已经进行了这些更正。但是还是不行。
-
引用插件的脚本标签在哪里?
-
脚本标签是否包裹在head标签中?
标签: javascript html javascript-events