2017-01-09 93 views
0

我正在创建一个Chrome扩展(我是新来的),它在页面加载时以及点击扩展按钮本身时禁用可匹配URL中的可排序功能。 我的背景脚本,在点击(browserAction)发送消息给我的内容的脚本(这是在清单中定义为禁用可在Chrome扩展程序中排序的jQuery UI

"js": ["jquery-3.1.1.min.js", "jquery-ui.min.js", "content.js"] 

content.js先后为浏览器操作(工作一个监听器),并可以运行的jQuery精致(如我测试了基本追加到页面上的一些文字 - 它的工作原理)

但是当我尝试

$(".isSortable").sortable("disable"); 

我得到

Error in event handler for runtime.onMessage: Error: cannot call methods on sortable prior to initialization; attempted to call method 'disable' 

这很奇怪,因为如果我运行$(“。isSortable”)。sortable(“disable”);在控制台中它正确地禁用页面上的排序。

但如果我将其更改为

$(".isSortable").sortable(); 
$(".isSortable").sortable("disable"); 

然后错误消失,但所选择的类仍然是可排序 - 任何人都可以摆脱什么,我做错了光?

+0

尽管我们可以猜测* *,如果你要显示一个错误,指出:“在runtime.onMessage事件处理程序错误”:那你应该包括内部的实际显示的相关代码'runtime.onMessage'监听器。 – Makyen

回答

0

如果你希望你的表进行排序禁用功能被初始化,您应该使用

$(".isSortable").sortable({ 
    disabled: true 
}); 

.sortable("disable");只能初始化后才能使用。

参考:Official Document