2014-02-12 122 views
2
結束事件

所以github上使用「德芬克特的」 PJAX模塊(https://github.com/defunkt/jquery-pjax#events)和我正在做一個Firefox的插件,需要聽取事件pjax:年底PJAX聽pjax:與標準JS

到目前爲止,我可以這樣做,像這樣的jQuery:

$(document).on('pjax:end', function (t) { 
    console.log('pjax:end'); 
}) 

但是,我該如何做到這一點與標準的JavaScript功能?

document.addEventListener('pjax:end',function(){ 
    console.log('ya'); 
}, true); 

不起作用。

對於那些誰知道火狐,插件這個代碼代碼不起作用:

gBrowser.contentWindow.wrappedJSObject['$'](gBrowser.contentDocument).on('pjax:end', function (t) { 
    Cu.reportError('pjax:end'); 
}) 

它拋出這個錯誤:

/* 
Exception: Permission denied to access property 'guid' 
[email protected]://github.global.ssl.fastly.net/assets/frameworks-752c70f2b89dcf2d1f948637afa35a3285fe6424.js:2 
[email protected]://github.global.ssl.fastly.net/assets/frameworks-752c70f2b89dcf2d1f948637afa35a3285fe6424.js:3 
.on/<@https://github.global.ssl.fastly.net/assets/frameworks-752c70f2b89dcf2d1f948637afa35a3285fe6424.js:2 
[email protected]://github.global.ssl.fastly.net/assets/frameworks-752c70f2b89dcf2d1f948637afa35a3285fe6424.js:1 
[email protected]://github.global.ssl.fastly.net/assets/frameworks-752c70f2b89dcf2d1f948637afa35a3285fe6424.js:1 
[email protected]://github.global.ssl.fastly.net/assets/frameworks-752c70f2b89dcf2d1f948637afa35a3285fe6424.js:2 
@Scratchpad/2:1 
*/ 
+0

奇怪的是,我正在嘗試編寫一個擴展來使用GitHub,我也有jQuery,但即使您的第一個示例對我也不適用。它仍然適用於你,或者可能是GitHub改變了一些東西? – NPC

+1

是的,它仍然工作,我最終做的是注入一個腳本到頁面添加一個jQuery監聽器,從我的插件觸發一個函數。插件是在這裏:[ghForkable](https://addons.mozilla.org/en-US/firefox/addon/ghforkable/)讓我知道你是否需要更多的幫助。順便說一句,在尋找和找到這個主題,它正是你需要尋找解決你的問題的好地方。 – Noitidart

回答

1

據我所知它目前無法趕上jQuery事件使用原生JavaScript(雖然看這個bug票http://bugs.jquery.com/ticket/11047它似乎有一些圖書館,將啓用此,但不是沒有代碼更改PJAX代碼)。

+0

非常感謝那個男人!虐待使用綁定函數,測試出來,然後回來,讓你知道它是如何工作 – Noitidart

+0

我試過'document.bind('自定義',函數(事件)'但它不工作,是否有可能使用W3C綁定獲取該自定義觸發器? – Noitidart

+1

看着測試jsfiddle http://jsfiddle.net/Jqeza/3/它似乎測試只與jQuery綁定方法(而不是w3c之一)。我懷疑你最好的選擇可能是嘗試並找出如何讓Firefox與githubs聊天jQuery「/ – Carl