所以我有一个用户脚本解析页面并创建一个选择框并用选项填充它。
现在,只要用户在选择框中更改选定的索引,我就想调用脚本。不幸的是,看起来用户脚本只运行一次,并且无法读取选择的未来更改。
我试过了:
1)
$('#selectBox').on('change', function()
{...}
(只运行一次?)
2)通过带有<script>
标签的insertBefore注入函数“function_to_call”并将我的选择行格式化为:
<select onChange="function_to_call.call(this,event)">...</select>
并且它不起作用,说function_to_call未定义
3)这个函数:https://gist.github.com/nylen/6234717再次注入我自己的函数,但是参数传递的所有内容都是未定义的。
用户脚本是否可以连续监听事件,还是仅仅是一次性执行?
答案 0 :(得分:1)
$('#selectBox').on('change', function()
{...})
,这只运行一次的原因是因为附加到dom元素的事件监听器一旦编辑就会消失(通过insertBefore,更改innerHTML等)
所以使用
$(document).on('change','#selectBox',function()
{...})
这将有效