每次在用户脚本上触发 select 上的 onChange 时,如何调用函数?
How can I call a function everytime onChange on select is triggered on a userscript?
所以我有一个用户脚本来解析页面并创建一个 select 框并用选项填充它。
现在我想在用户更改 select 框上的 selected 索引时调用脚本。不幸的是,用户脚本似乎只有 运行 一次,并且无法读取 select.
上的未来更改
我试过:
1)
$('#selectBox').on('change', function()
{...}
(只有运行一次?)
2) 通过带有 <script>
标记的 insertBefore 注入函数 "function_to_call" 并将我的 select 行格式化为:
<select onChange="function_to_call.call(this,event)">...</select>
又不行,说function_to_call未定义
3) 这个函数:https://gist.github.com/nylen/6234717 再次注入我自己的函数,但传递给参数的所有内容都是未定义的。
用户脚本是否有可能连续监听事件,或者它真的只是一次性执行?
$('#selectBox').on('change', function()
{...})
,它只运行一次的原因是因为附加到 dom 元素的事件侦听器一旦被编辑(通过 insertBefore 更改 innerHTML 等)就会消失
所以使用
$(document).on('change','#selectBox',function()
{...})
这会起作用
所以我有一个用户脚本来解析页面并创建一个 select 框并用选项填充它。
现在我想在用户更改 select 框上的 selected 索引时调用脚本。不幸的是,用户脚本似乎只有 运行 一次,并且无法读取 select.
上的未来更改我试过:
1)
$('#selectBox').on('change', function()
{...}
(只有运行一次?)
2) 通过带有 <script>
标记的 insertBefore 注入函数 "function_to_call" 并将我的 select 行格式化为:
<select onChange="function_to_call.call(this,event)">...</select>
又不行,说function_to_call未定义
3) 这个函数:https://gist.github.com/nylen/6234717 再次注入我自己的函数,但传递给参数的所有内容都是未定义的。
用户脚本是否有可能连续监听事件,或者它真的只是一次性执行?
$('#selectBox').on('change', function()
{...})
,它只运行一次的原因是因为附加到 dom 元素的事件侦听器一旦被编辑(通过 insertBefore 更改 innerHTML 等)就会消失
所以使用
$(document).on('change','#selectBox',function()
{...})
这会起作用