在现有的* .js文件中包含JS源代码

时间:2016-02-25 04:14:05

标签: javascript jquery mqtt

我有MqttConnect.js文件和mqttws31.js lib。我要mqttws31.js所有源代码都包含我的MqttConnect.js文件,怎么可能?。

当我从mqttws31.js和过去的mqttconnect.js文件中复制所有内容时。此时会发生此错误:

  

ReferenceError:未定义消息传递

如果我尝试这种方式它工作正常:

<head>
    <meta charset="UTF-8">
    <title>Title of the document</title>
     <script src="http://www.hivemq.com/demos/websocket-client/js/mqttws31.js" type="text/javascript"></script> 

     <script src="MqttJS/MqttConnect.js"></script>

</head>

MqttConnect.js文件代码:

// Using the HiveMQ public Broker, with a random client Id

        var client = new Messaging.Client("broker.mqttdashboard.com",8000, "myclientid_" + parseInt(Math.random() * 100, 10));


        //Connect Options
        var options = {
            timeout: 60,
            keepAliveInterval:450, 
            cleanSession:false, 
            //Gets Called if the connection has sucessfully been established
            onSuccess: function () {

                alert("Connected:");

            },
            //Gets Called if the connection could not be established
            onFailure: function (message) {
                alert("Connection failed -: " + message.errorMessage);
            }
        };

        function Connect(){
            try {

            client.connect(options)



            }
            catch(err){
                alert(err.message);

            }

        }

mqttws31.js代码:

http://www.hivemq.com/demos/websocket-client/js/mqttws31.js

更新

我想要使用它,没有html页面

3 个答案:

答案 0 :(得分:1)

这可能是由于JavaScript加载的怪癖。您可以在this answer中找到一个很好的示例。

快速回答是将两个JavaScript文件加载到托管它们的HTML文档的主体中,并在脚本上方放置MQTT库。

不要只是将图书馆复制到您自己的文件中,如果您没有正确地归功于图书馆的资源,那么表格形式非常糟糕且版权受到侵犯。

答案 1 :(得分:1)

mqttws31.js的内容复制到顶部的MqttConnect.js(不在底部),然后加载MqttConnect.js文件:

<head>
    <meta charset="UTF-8">
    <title>Title of the document</title>
    <script src="MqttJS/MqttConnect.js"></script>

</head>

我自己尝试过,我没有收到任何错误。 (窗口未定义)

答案 2 :(得分:0)

两个文件之间存在依赖关系,即MqttConnect.js中有代码需要mqttws31.js中的代码才能正常工作。所以我假设你在MqttConnect.js的末尾粘贴了mqttws31.js的内容。在MqttConnect.js的开头粘贴mqttws31.js的内容应该解决这个问题。您的MqttConnect.js应该看起来像

// Contents of mqttws31.js ...
// Contents of MqttConnect.js ...