Objectif: Pour créer un bookmarklet qui appelle un fichier javascript distant qui ouvre une fenêtre contextuelle. La fenêtre contextuelle est fonctionnellement similaire à celle du bookmarklet de Delicious.Création d'un bookmarklet qui n'est pas bloqué
Contexte: Actuellement, j'utilise window.open dans ce fichier javascript, mais le popup est bloqué par à peu près tous les principaux navigateurs.
La solution alternative est très similaire à la façon dont Delicious a écrit son bookmarklet - en appelant window.open via une requête javascript dans le bookmarklet lui-même. Cependant, j'ai besoin de la possibilité de modifier les autres contenus de mon fichier javascript à l'avenir sans que les utilisateurs ne soient obligés de saisir en permanence les dernières versions du bookmarklet.
Ce que j'ai déterminé à se produire: Depuis l'appel window.open ne se produit pas directement en raison d'un clic par l'utilisateur, le navigateur estime que cela est quelque chose qui devrait être bloqué. Voici a source à ce sujet.
This est le didacticiel auquel j'ai le plus récemment référencé lors de la création de l'appel au fichier js distant.
Voici un exemple de base de ce que fait mon code; la partie de window.open/popup est la seule partie importante, je suis notamment car il est la seule partie que je ressens est à l'origine de la complication:
Exemple du fichier javascript à distance:
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');
}
Je voudrais vraiment J'apprécie toute aide car cela m'a bloqué pendant un moment!
Si vous pouviez le faire, à partir d'un fichier externe inclus, pourquoi tous les spammeurs et annonceurs intrusifs ne pourraient-ils pas faire de même? Si vous pensez aux abus que cela offre, il est assez facile de voir pourquoi il est activement bloqué par tous les navigateurs. –
Eh, ceci est un bookmarklet, l'utilisateur doit cliquer dessus activement et les bookmarklets ont besoin d'une interaction utilisateur à créer. – tomdemuyt