background.js
var get_last = function(){
chrome.bookmarks.getRecent(1,function(num){
move(num[0])
});
}
var move = function(last){
const dest = {
index: 0
}
chrome.bookmarks.move(last.id,dest);
}
chrome.bookmarks.onCreated.addListener(
get_last()
);
我想在新增書籤時,把它移到資料夾的最上面(index:0)
看起來會像從上面加入的 而不是預設的加在下面
但它只有在我重整背景頁面時會觸發一次
之後新增書籤 都不會觸發onCreatd這段
chrome.bookmarks.onCreated.addListener(
get_last
);
js 問題
已實測過
你難道不會好奇
明明還沒 create 就觸發 event
不是很奇怪嗎XD
至於原因
最直白的講法
get_last // function
get_last() // function 執行後 return 的值
js 滿山滿谷的坑
...小魚你的前端果然是兼職的,居然說這很神奇,這應該你一直都在寫,只是都寫匿名函式而已。XD
$.ajax.post("url", options).done(function(){
....
})
跟下面是一樣的
function requestHandler(){
....
}
$.ajax.post("url", options).done(requestHandler)
這用法很多語言都有,就跟callback要傳function一樣。
python有、golang也有
https://www.kancloud.cn/itfanr/go-by-example/81679
回到話題,動態語言這點真的坑很大,除非用type hint要不然就是得去翻api或規格書,要不然你根本不知道要傳什麼類型進去。
https://crxdoc-zh.appspot.com/extensions/bookmarks#event-onCreated
寫得很清楚:callback 参数应该是一个如下形式的 函数
其實如果他發現他的
last.id
跟
onCreated callback 的 id
是一樣的東西的話
就會很自然的去用
應該也就不會遇到這個問題了XD
所以他的 code 最簡潔會長這樣
chrome.bookmarks.onCreated.addListener((id) => chrome.bookmarks.move(id, { index: 0 }));
onCreatd 看英文就是建立的時候才會觸發啊.
你應該要找其他事件.