通过Webapp中的按钮访问外部js文件中的功能

时间:2019-11-20 22:46:06

标签: javascript jquery html node.js azure-iot-hub-device-management

我的/ js文件夹中有一个文件dmreboot_service.js。当我使用节点/js/dmreboot_service.js运行此文件时,它会成功调用Azure中的直接方法。

我需要能够通过单击Web应用程序来执行此功能或文件。

我尝试使用以下命令将脚本加载到html的开头:

<script src="js/dmreboot_service.js"></script>

我在外部文件中添加了警报。 如果我将此警报放在文件的顶部,它将起作用,但是位于 底部失败,因此该文件的内容未加载。

dmreboot_service.js的内容是:

'use strict';

var Registry = require('azure-iothub').Registry;
var Client = require('azure-iothub').Client;


var connectionString ="HostName=XxxxxxxX.azure-devices.net;SharedAccessKeyName=service;SharedAccessKey=XxxxxxxxxxxxxxxxxxxxxxxxxxxxxxX=";
var registry = Registry.fromConnectionString(connectionString);
var client = Client.fromConnectionString(connectionString);
var deviceToReboot = 'Runner';

var startRebootDevice = function (twin) {

  var methodName = "reboot";

  var methodParams = {
      methodName: methodName,
      payload: null,
      timeoutInSeconds: 30
  };

  client.invokeDeviceMethod(deviceToReboot, methodParams, function(err, result) {
      if (err) {
          console.error("Direct method error: "+err.message);
      } else {
          console.log("Successfully invoked the device to reboot.");  
      }
  });
};

var queryTwinLastReboot = function() {

  registry.getTwin(deviceToReboot, function(err, twin){

      if (twin.properties.reported.iothubDM != null)
      {
          if (err) {
              console.error('Could not query twins: ' + err.varructor.name + ': ' + err.message);
          } else {
              var lastRebootTime = twin.properties.reported.iothubDM.reboot.lastReboot;
              console.log('Last reboot time: ' + JSON.stringify(lastRebootTime, null, 2));
          }
      } else 
          console.log('Waiting for device to report last reboot time.');
  });
};

startRebootDevice();
setInterval(queryTwinLastReboot, 2000);

alert('dmreboot included!');

我还尝试在html的开头创建一个函数,该函数包含dmreboot_service.js的全部内容,但是尽管该函数被成功调用,但代码无法执行。

这是我需要开始工作的项目的最后一部分。我对此很陌生,这让我发疯了!!任何建议,不胜感激。

1 个答案:

答案 0 :(得分:0)

我通常使用javascript处理HTML中的点击;

const doSomething = document.querySelector('.whateverclassnameyouchoose').addEventListener('click',onClick);

function onClick(e){
what ever you want the function to do
}

希望它会有所帮助:)