2016-09-15 57 views
2

worrk我把下面的書籤從here爲什麼書籤不會在Twitter上

javascript:var a=''; 
for(var ln=0;ln<document.links.length;ln++) 
    {var lk=document.links[ln]; 
    a+=ln+': <a href=\''+lk+'\' title=\''+lk.text+'\'>'+lk+'</a><br>\n'; 
    } 
w=window.open('','Links','scrollbars,resizable,width=800,height=600'); 
w.document.write(a) 

它爲什麼不上Twitter的主要現場工作: https://twitter.com/search?q=from%3Abmw%20since%3A2016-07-01%20until%3A2016-07-31&src=typd

它在移動網站很好地工作: https://m.twitter.com/search?q=from%3Abmw%20since%3A2016-07-01%20until%3A2016-07-31&src=typd

要使用此書籤將其拖動到您的書籤欄,然後單擊它。

+0

適合我在Twitter主... – albert

+0

@albert:我使用Linux Fedora + Firefox/chorme,它不工作。你能告訴你什麼是你的操作系統/瀏覽器? – PHA

+1

chrome/os x capitan – albert

回答

2

這是一個CSP(內容安全策略)問題。

使用CSP,站點可以決定允許哪些腳本運行。 Twitter,GitHub和其他一些禁用內聯腳本,這使得書籤在其網站上無法使用。

雖然CSP規範允許瀏覽器繞過這些限制,以保持bookmarklets,用戶腳本等功能,但它不強制執行它。 (它曾經,但措詞有所變化,從應該可能)。不幸的是,對於Firefox doesn't seem to allow this書籤小,除非你願意完全禁用CSP(在about:configsecurity.csp.enable),我不知道任何設置的解決這個問題。 (擴展功能仍然有效。)但是,它可以在Chrome中運行 - 這就是爲什麼@albert無法重現您的問題。

您可以自己嘗試:轉到Twitter並在地址欄中輸入如javascript:alert('hello')之類的內容。什麼都不會發生,如果你打開JS控制檯並啓用安全日誌,你會看到CSP阻止了你的sript運行。

因此,簡而言之:Bookmarklets在所謂的安全利益的祭壇上被犧牲。

相關問題