私はOpera用のユーザーJSを書いています。拡張子がないリクエスト、/stuff/code/MyFile
たとえばJavaScriptに関連しないリクエストに反応します/stuff/code/load.do
。応答のcontent-typeは、text/html
純粋なJavaScriptソース(text/javascript
)を返しますが、に設定されます。私はサーバーコードにアクセスできないので、これを使用する必要があります。
ここでの問題は、ソースを行番号などでフォーマットして、Opera内に表示したいということです。したがって、私は反応するためにいくつかのユーザーJSを作成しましたAfterEvent.DOMContentLoaded
(これも試してみましたAfterEvent.load
、同じことです)。e.event.target.body.innerHTML
本体、つまりJavaScriptコードにアクセスするために読み取ります。
ソースにHTMLタグまたは比較演算子(<、>)が含まれていない場合は、それだけでもうまく機能します。そうなので、私は望む出力を得ることができません。text/html
Operaには、 -responseを独自の表現形式に変換するための内部ロジックがあるようです。これには、たとえば、HTMLタグが削除された後のCRLFや、2つの「一致する」<と>(比較演算子!)の間のコードが1行にまとめられ=""
、そこにある各単語の後に適用されることが含まれます。
そして、そこに問題があります。
ユーザーJSなしで同じURLをリクエストし、「ページ」のソースを見ると、サーバーが送信したものと同じクリーンなJavaScriptコードが表示されます。そして、これは私がアクセスしたいものです。
innerText
の代わりにを使用するとinnerHTML
、OperaはHTMLタグを削除して、ファイルを元のファイルとは異なるものにします。
outerHTML
、、も見てみましouterText
たtextContent
が、どれも同じ問題です。
Operaはここで何も悪いことをしていないことを私は知っています。サーバーはそれがaであると言い、Operaは通常のような応答text/html
で通常行うことを実行します。text/html
したがって、私の質問は次のとおりです。ユーザー-JSで手つかずの応答を取得する方法はありますか?