2009-12-21 4 views
2

J'essaie de construire un bookmarklet qui effectue les opérations suivantes:Comment charger un css externe, js et ajouter un div au DOM à partir d'un bookmarklet?

1.) charge une js externe, situé sur mon serveur (fait)

javascript:function%20loadScript(scriptURL)%20{%20var%20scriptElem%20=%20document.createElement('SCRIPT');%20scriptElem.setAttribute('language',%20'JavaScript');%20scriptElem.setAttribute('src',%20scriptURL);%20document.body.appendChild(scriptElem);}%20loadScript('http://127.0.0.1/main.js?x='+Math.random()); 

2.) ce javascript externe à son tour, charge jquery et jquery ui que d'ajouter un div dans le site actuel DOM. (Ne peut pas obtenir ce travail)

function loadScripts(scriptURL) { 


var scriptElem = document.createElement('SCRIPT'); 
scriptElem.setAttribute('language', 'JavaScript'); 
scriptElem.setAttribute('src', scriptURL); 
void(document.body.appendChild(scriptElem)); 
} 


loadScripts('http://127.0.0.1/js/jquery-1.3.2.min.js'); 
loadScripts('http://127.0.0.1/js/jquery-ui-1.7.2.custom.min.js'); 


var head = document.getElementsByTagName('head')[0]; 
$(document.createElement('link')).attr({type: 'text/css', href: 'http://127.0.0.1/css/redmond/jquery-ui-1.7.2.custom.css', rel: 'stylesheet'}).appendTo(head); 



$(document).ready(function(){ 
    div = $("<div>").html("Loading......"); 
    $("body").prepend(div); 
}); 

Le problème que je vais avoir est que je ne peux pas ajouter un div avec un certain id, l'idée est d'utiliser la fonction de jQueryUI dialogue() afin de avoir une boîte de dialogue redimensionnable et mobile apparaît sur n'importe quel site que j'utilise le bookmarklet sur.

$("#dialog").dialog(); 

Comme vous pouvez l'imaginer, je dois charger mon contenu dans un div particulier donc je ne suis pas gâcher la conception du site le bookmarklet a été chargé.

3.) La boîte de dialogue qui vient ouvert a le contenu d'un fichier php distant qui analyse essentiellement la page.

Le script est terminé J'ai juste besoin de le charger dans la boîte de dialogue que je tente de construire.

S'il vous plaît aider, car je suis vraiment coincé avec ça! Merci.

Répondre

1

Est-ce que cela aide? Est-ce la partie qui vous pose problème?

$("<div id='id'></div>").html("Loading......"); 

Les docs jQuery disent:

Tous HTML doit être bien formé, sinon il peut ne pas fonctionner correctement sur tous les navigateurs. Cela inclut le cas où $("<span>") peut ne pas fonctionner mais $("<span/>") (notez la barre de fermeture de style XML).

+0

Merci Victor, j'ai juste réussi à comprendre cette partie. J'ai chargé le div dans mon contenu et maintenant j'essaye de l'obtenir pour exécuter un manuscrit de php à distance. – Carvefx

+0

Cool! Aussi, si en exécutant un script PHP distant, vous voulez faire un appel Ajax crossdomain, vous rencontrerez des problèmes. Vous devrez également l'appeler à partir d'une balise '

Questions connexes