2017-01-09 114 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