javascript - 监听外部 JavaScript 文件中的变量更改

标签 javascript jquery dom-events

有一个电子商务平台大量使用了ajax。在后台订单部分有两种可能性:订单列表页面和详细订单页面。 url 不会改变,如果它能告诉我在哪个页面,那就很容易了,但事实并非如此。

这个平台使用ajax为变量分配一些值,通过这个值我可以在我的代码中知道我在哪个页面,我能做的最好的就是使用setInterval()来获取这个变量的变化。我讨厌使用 setInterval() 所以我正在寻找替代方案。

为什么我讨厌它?想象一下,一位客户在电子商务中使用我们的“帮助”,并将其整天打开。 setInterval() 在这种情况下是令人讨厌的。

问题是我对平台运行的外部 Javascript 没有任何控制权,所以我需要一种方法来使用某种监听器来监听这个变量。

我能找到的最好的是这个Akira's answer但我无法使用它,因为这个变量不在我的控制范围内定义。

这就是我所做的:

setInterval(function() {//get the variable from the source code of the platform; it changed? do stuff}, 1000);

您知道比 setInterval() 更好的方法吗?只是为了改进我的代码。

编辑:此变量位于脚本中,而不是 html 元素中

编辑 2: this link是比 setInterval() 更好的方法,基本上是改进的 setInterval() ,因为你可以告诉他要执行多少次迭代,这在客户端的情况下是可以的让平台整天保持开放状态,但是要使用它,我需要一些东西来检测客户端在页面上进行了一些事件,我需要什么?听众太棒了,回到原点

最佳答案

您可以尝试使用 Vue.js 框架。我创建了jsfiddle与示例代码。因此,Vue.js 框架自动检查和更新变量的想法。但是,它应该在您的“平台”对象中添加相应的代码。因此它可能会起作用或破坏某些功能。无论如何你都可以尝试,因为你需要做的就是写几行代码:-)

 window.someObjectOfThePlatform = {
      variable1:"Test",
      updateVariable1:function(){
        this.variable1 = "New val " + Math.random(10);    
      }
    };

    Vue.component('your-component', {
        template:"<div>{{ variable1 }}</div>",
        data:function(){
        /* all magic is here. The Vue framework automaticaly add 
           methods to look at variables and update values
        */
        return window.someObjectOfThePlatform
      },
      watch: {
        // whenever variable1 changes, this function will run
        variable1: function (newValue) {
            console.log("variable1 updated");
        }
     }
    });

    var app = new Vue({
      el: '#app'
    });

关于javascript - 监听外部 JavaScript 文件中的变量更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42158014/

相关文章:

javascript - HTML5 Canvas : gradients and strokeStyle have me confused

jquery - 为什么我的跨度文本没有改变?

javascript - 当 onchange 接管时,如何返回到原始事件?

javascript - 使用设置了 onClick 事件的 React Hook 更改 img src

javascript - 在 JavaScript 事件中更改图像大小

javascript - 正则表达式匹配特定位数

javascript - 在 for 循环中创建 <div> 元素时乱序

javascript - 单击按钮时无法调用 Jquery 函数

jquery - 使用 JQuery 透视查看器

javascript - 仅在 jquery 中使用 data-slidein=1 隐藏一个 slider 中的一个元素