目標:創建一個小書籤,該小書籤調用打開彈出窗口的遠程JavaScript文件。彈出窗口在功能上類似於Delicious的書籤功能。創建不被阻止的小書籤
背景:目前,我在這個JavaScript文件中使用window.open,但彈出窗口幾乎被所有主流瀏覽器阻止。
對此的替代解決方案與Delicious編寫書籤的方式非常相似 - 通過書籤本身內的JavaScript查詢調用window.open。但是,我需要能夠在將來修改我的JavaScript文件的其他內容,而不需要用戶不斷抓取書籤的最新版本。
我已經確定要發生什麼:由於window.open呼叫沒有發生直接的點擊用戶的結果,瀏覽器覺得這是應該被阻止。這裏是a source。
This是我最近在創建對遠程js文件調用時引用的教程。
下面是我的代碼正在做的一個基本示例;該window.open/popup部分是我,包括唯一的顯著部分,因爲它是我覺得是造成併發症的唯一部分:遠程的
例javascript文件:
if (typeof jQuery == 'undefined') {
var jQ = document.createElement('script');
jQ.type = 'text/javascript';
jQ.onload=runthis;
jQ.src = 'http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js';
document.body.appendChild(jQ);
} else {
runthis();
}
function runthis() {
window.open('http://www.google.com/', 'a title',
'location=yes,links=no,scrollbars=no,toolbar=no,width=550,height=550');
}
我真的感謝任何幫助,因爲這一直困擾着我一段時間!
如果你能做到這一點,從外部包含文件,爲什麼不能每個垃圾郵件發送者和侵入性廣告客戶做同樣的事情?如果您考慮到這個問題會帶來哪些弊端,那麼很容易就會明白爲什麼它會被每個瀏覽器主動阻止。 – 2010-07-02 03:32:15
呃,這是一個小書籤,用戶必須主動點擊它並且bookmarklets需要創建用戶交互。 – tomdemuyt 2012-02-06 19:54:23