我正在构建一个 JS 库,其中一个用例要求我触发 DOM 更改事件,特别是如果它是单页应用程序,例如: github 搜索栏
经过一些研究后我发现MutationObserver:
// Dom change event listner
MutationObserver = window.MutationObserver || window.WebKitMutationObserver;
var observer = new MutationObserver(function(mutations, observer) {
// fired when a mutation occurs
attachListners();
// ...
});
observer.observe(documentAlias, {
subtree: true,
childList: true
//...
});
Run Code Online (Sandbox Code Playgroud)
问题:我正在构建的库旨在插入任何网站,因此我无法控制 html 实现。我有点担心使用突变观察器可能会进入无限循环。在同一行看到很多堆栈溢出问题。
有没有其他/更好的方法?如何安全有效地检测 DOM 更新/更改?或者突变观察者是最好的选择
我对javascript相当陌生,我知道基础知识。我希望构建我自己的(从头开始)java 脚本库,就像 google analytics.js 一样,它将跟踪用户在网站上的行为。基本上我想收集像
我花了很多时间试图找到网站/教程来让我开始这件事,但我一直在使用 google analytics.js 或一些私人工具。
我在找什么:
javascript google-analytics web-analytics-tools web-analytics
我有3个数组:min,max和regions.我想为每个region对应的min和max值创建一个哈希.像这样的东西:
regions=["Region 1","Region 2",....]
min=["100","200",...]
max=["500","300",...]
#=> {"Region1"=>["100", "500"], "Region 2"=>["200", "300"], ...}
Run Code Online (Sandbox Code Playgroud)
这是我的代码:
@min = params[:min]
@max = params[:max]
@regions = params[:regions]
Run Code Online (Sandbox Code Playgroud)
到目前为止我已经尝试了这个,但没有奏效:
@range_map = Hash[@regions.map{|r| [r, [@min.each.to_i,@max.each.to_i]]}]
Run Code Online (Sandbox Code Playgroud)
我想要的只是来自3个数组的散列,并且min和max被转换为整数.