Opera User-JS:RAWサーバーの応答を取得するにはどうすればよいですか?

StackOverflow https://stackoverflow.com/questions/4396232

  •  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, outerTexttextContent, 、しかし、それらはすべて同じ問題を抱えています。

私はここでオペラが何も悪いことをしないことを知っています。サーバーはそれがaだと言います text/html そして、オペラは単にそれが通常することをしている text/html- 応答の系。

したがって、私の質問は次のとおりです。ユーザーJSで手つかずの応答を取得する方法はありますか?

役に立ちましたか?

解決

JSからの事前に分類されたマークアップにアクセスする方法はありません。それを行う唯一の方法は、xmlhttprequestを使用してコンテンツを自分で要求することです。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top