Opera User-JS:RAWサーバーの応答を取得するにはどうすればよいですか?
-
10-10-2019 - |
質問
私はオペラのユーザーJSを書いています。拡張機能を持たないリクエストに応じて反応します。 /stuff/code/MyFile
, 、またはJavaScriptに関連していないものがあります。 /stuff/code/load.do
. 。応答のコンテンツタイプはに設定されています text/html
, 、純粋なJavaScriptソースを返しますが(text/javascript
)。サーバーコードにアクセスできないため、これと一緒に暮らす必要があります。
問題は、線番号などでソースをフォーマットし、オペラ内に表示したいということです。したがって、私は反応するためにいくつかのユーザーJSを書きました AfterEvent.DOMContentLoaded
(試してみました AfterEvent.load
, 、 同じこと)。それは読みます e.event.target.body.innerHTML
ボディにアクセスするために、つまりJavaScript-Code。
ソースのみにHTMLタグまたは比較演算子が含まれない場合(<、>)、それだけでうまく機能します。そうするので、私は私が望む出力を得ることはありません。オペラには、変換するための内部ロジックがあるようです text/html
- 独自の表現形式に応答します。これには、HTML-TAGが削除された後のCRLFなどが含まれます。 =""
そこに各単語の後。
そして、それが問題です。
ユーザーJSなしで同じURLを要求してから、「ページ」のソースを見ると、サーバーが送信したものと同じクリーンなJavaScriptコードが同一になります。そして、これは私がアクセスしたいものです。
使用する場合 innerText
それ以外の innerHTML
, 、オペラはHTMLタグを取り除き、ファイルもオリジナルとは異なります。
私も見ようとしました outerHTML
, outerText
と textContent
, 、しかし、それらはすべて同じ問題を抱えています。
私はここでオペラが何も悪いことをしないことを知っています。サーバーはそれがaだと言います text/html
そして、オペラは単にそれが通常することをしている text/html
- 応答の系。
したがって、私の質問は次のとおりです。ユーザーJSで手つかずの応答を取得する方法はありますか?
解決
JSからの事前に分類されたマークアップにアクセスする方法はありません。それを行う唯一の方法は、xmlhttprequestを使用してコンテンツを自分で要求することです。