J'essaie de charger this remote debugging solution pour déboguer/interagir avec DOM/js live. Les instructions vous demandent de mettre un bloc script
et un lien script
dans le HEAD
de la page pour que tout fonctionne. C'est très bien. C'est un excellent outil. Mais que se passe-t-il si je veux une manière de "l'insérer" dans n'importe quelle page. Je ne vois pas pourquoi cela ne peut pas être fait.Comment puis-je charger un fichier javascript en utilisant un bookmarklet qui à son tour ne redirige/réécrit pas la page?
Ceci est mon bookmarklet:
javascript:(function(){document.body.appendChild(document.createElement('script')).src='http://url-to-js-file.js?x='+(Math.random());})();
Et puis "url-to-js-file.js" charge les js pour iphonedebug:
ipdConfig = {
baseUrl: '/ipd/', // trailing slash!
consoleBaseUrl: 'http://192.168.1.25:8170/' // trailing slash!
}
document.body.appendChild(document.createElement('script')).src='http://192.168.1.25/ipd/ipd.js';
console.log('fin.');
Notez que la propriété src
il y avait à l'origine "/ipd/ipd.js" comme les instructions le suggèrent. Mais il faudra que ce soit absolu comme ça si je veux que le débogueur travaille avec d'autres sites.
Mon problème est que ce code videra le premier fichier js (url-à-js file.js) dans la page ok mais quand le premier fichier tente d'insérer les autres fichiers successifs ma page semble rediriger . En fait, il ne redirige pas mais juste réécrit. Firebug montre la page résultante en tant que corps, mais seulement les fichiers ipd js dans l'élément HEAD
.
Pourquoi fait-il cela?
Est-ce à cause du bookmarklet behavior qui normalement redirige vers une nouvelle page? Je ne pense pas. Parce que j'utilise une fermeture dans le lien bookmarklet. Et quand je commente la ligne document.body...
du fichier "url-to-js-file.js" la page reste où elle est. Est-ce la nidification? Ou peut-il être quelque chose dans les autres fichiers ipd js provoquant cela?
J'ai essayé de mettre mon code "url-to-js-file.js" dans une fermeture, mais alors la variable globale ipdConfig
devient invisible pour le reste du code ipd qui le casse.
Des idées?
bien. Je vais essayer et voir ce qui se passe. Qu'y a-t-il à propos de "document.write'"? –
'document.write()' a deux comportements. Si la page n'a pas fini de se charger, elle ajoute tout ce qui est écrit sur la page. Mais si la page a fini de charger (comme c'est dans votre cas), elle remplace TOUS LES CONTENUS DE LA PAGE. – slebetman
Pas 100% que c'était la solution mais cela semble le plus logique. –