Opera User-JS: comment puis-je obtenir la réponse du serveur cru?
-
10-10-2019 - |
Question
J'écris quelques-uns utilisateur JS pour Opera. Il réagit à une demande qui ne possède pas d'extension, par exemple /stuff/code/MyFile
, ou a une non liée à activer, par exemple /stuff/code/load.do
. Le type de contenu de la réponse est réglée sur text/html
, même si elle retourne source pure JavaScript (de text/javascript
). J'ai simplement que je n'ai pas accès au code du serveur à vivre avec cela.
Le problème est maintenant que je veux formater la source avec les numéros de ligne et par exemple et l'afficher à l'intérieur de l'Opéra. Par conséquent, je l'ai écrit quelques-utilisateur JS à réagir sur AfterEvent.DOMContentLoaded
(également essayé AfterEvent.load
, la même chose). Il lit e.event.target.body.innerHTML
d'accès de gain au corps, à savoir le code JavaScript.
Cela seul fonctionnerait bien, si seulement la source ne contiendrait pas les balises HTML ou les opérateurs de comparaison (<,>). Comme il le fait, je ne me la sortie que je veux. Opera semble avoir une certaine logique interne pour convertir le text/html
-réponse dans son propre format de représentation. Cela comprend par exemple que un CRLF après une balise HTML est supprimé ou un code entre deux « correspondant » =""
après chaque mot là-dedans.
Et c'est là le problème.
Si je demande la même URL sans mon utilisateur JS puis regarde la source de la page « » Je vois un code JavaScript code propre identique à ce que le serveur a envoyé. Et ce que je veux avoir accès à.
Si je innerText
au lieu de innerHTML
, Opera bandes les balises HTML rendant les différents fichiers à l'original, aussi.
J'ai essayé aussi de regarder outerHTML
, outerText
et textContent
, mais ils ont tous les mêmes problèmes.
Je sais que Opera ne fait rien de mal ici. Le serveur dit que c'est un text/html
et Opera fait tout simplement ce qu'il fait habituellement avec un text/html
-type de réponse.
Par conséquent, ma question est: est-il possible d'obtenir la réponse intacte avec un utilisateur JS
La solution
Il n'y a pas moyen d'accéder au balisage préanalysée de JS. La seule façon de le faire serait d'utiliser XMLHttpRequest pour demander le contenu vous-même.