2011-11-30 2 views
2

J'essaie de trouver un moyen de créer un bookmarklet qui va charger (à partir d'un fichier externe) un nouveau calque/div avec d'autres html et css et superposez-le sur la page existante.Comment créer un bookmarklet pour superposer une couche html/div et CSS depuis un fichier externe

Est-ce que quelqu'un a un exemple de bookmarklet pour cela, ils pourraient partager s'il vous plaît?

Je peux créer la div avec le nouveau contenu html et les classes CSS Je ne suis pas sûr de savoir comment écrire la fonction bookmarklet et javascript/jquery pour charger du nouveau contenu sur la page existante.

Merci beaucoup!

+0

Avez-vous quelque chose que vous avez déjà essayé? – Kyle

+0

J'ai regardé du code que je peux apprendre mais mes JS sont très basiques et je ne comprends pas comment le faire. Je n'ai pas pu trouver d'exemples, donc j'ai demandé à la communauté SO. La partie html que je peux gérer, c'est la mise en place d'un bookmarklet pour appeler le fichier externe qui héberge le html je ne comprends pas comment faire. – user895635

+0

Je n'essaie pas d'être spammy, mais j'ai écrit [un générateur de bookmarklet] (http://zbooks.zzzzbov.com/) il y a un moment qui exécutera le fichier de script lié avec jQuery. Vous pouvez [voir la source] (http://zbooks.zzzzbov.com/assets/js/zbooks-1.2.js) si vous le souhaitez. – zzzzBov

Répondre

2

)

Essayez ce code, évidemment, il peut être amélioré, mais cela fonctionne. Vous devez le minifier et assurez-vous d'ajouter "javascript:" avant de le coller dans la barre d'adresse de votre navigateur.

javascript : (function (e, a, g, h, f, c, b, d) { 
    if (!(f = e.jQuery) || g > f.fn.jquery || h(f)) { 
     c = a.createElement("script"); 
     c.type = "text/javascript"; 
     c.src = "http://ajax.googleapis.com/ajax/libs/jquery/" + g + "/jquery.min.js"; 
     c.onload = c.onreadystatechange = function() { 
      if (!b && (!(d = this.readyState) || d == "loaded" || d == "complete")) { 
       h((f = e.jQuery).noConflict(1), b = 1); 
       f(c).remove() 
      } 
     }; 
     a.documentElement.childNodes[0].appendChild(c) 
    } 
})(window, document, "1.3.2", function ($, L) { 

    //your code here (a div with some content) 
    $("<div style='width:500px;height:400px; border:5px solid black; background-color:white; box-shadow:10px 10px 10px black; position:fixed; top: 150px; left:150px; z-index:99999'><h1 style='margin:150px'>hello world</h1></div>").appendTo("body"); 
}); 

EDIT:

est ici le même code en utilisant un document externe intégré dans un iframe:

javascript:(function(e,a,g,h,f,c,b,d){if(!(f=e.jQuery)||g>f.fn.jquery||h(f)){c=a.createElement("script");c.type="text/javascript";c.src="http://ajax.googleapis.com/ajax/libs/jquery/"+g+"/jquery.min.js";c.onload=c.onreadystatechange=function(){if(!b&&(!(d=this.readyState)||d=="loaded"||d=="complete")){h((f=e.jQuery).noConflict(1),b=1);f(c).remove()}};a.documentElement.childNodes[0].appendChild(c)}})(window,document,"1.3.2",function($,L){$("<div style='width:500px;height:400px; border:5px solid black; background-color:white; box-shadow:10px 10px 10px black; position:fixed; top: 150px; left:150px; z-index:99999'><iframe style='width:100%; height:100%;' src='http://www.htmlcodetutorial.com/frames/hello.html'></iframe></div>").appendTo("body");}); 
+0

WOW! Ca marche ... merci Alvaro! Comment puis-je appeler un fichier html externe plutôt que de coder en dur dans le div avec du contenu? - C'est génial quand même. Merci beaucoup! – user895635

+0

Pourriez-vous aider avec la question du fichier html externe plutôt que la div/css dans le bookmarklet Alvaro? Alors ce serait la réponse parfaite! Merci beaucoup. – user895635

+0

Utilisez un Iframe, j'ai ajouté un exemple ci-dessus :-) –

Questions connexes