現在、私は現在のHTMLページのDIVにそれを挿入するサードパーティのHTMLファイルであるload()
に対してjQueryを使用しています。jQueryを使用してHTMLファイル内のドメイン(またはIPアドレス)を書き換えます。
$("#external-page").load(URL, function() {
injectDataInPage();
doOtherStuffInPage();
});
これは非常にうまくいきます。大きな問題は、HTMLに多くのコードを追加したことです(つまり、サーバーリクエストを発行するボタンと別のサーバーからロードされたリソースなど)。
彼らは彼らの要求にしかパスを使用していない場合はOKですが残念なことに、ドメインと時にはIPアドレスを指定します。
ハードコードされたドメインとIPアドレスをすべて自分のサーバーを指すように置き換えたいと思います。
例えば、これらので:
<a href='http://external.com/some/path/of/service'>Click here</a>
<img src='http://10.2.3.4/some/path/to/image.png'>
がに再マッピングされます:
<a href='http://my.domain.com/some/path/of/service'>Click here</a>
<img src='http://my.domain.com/some/path/to/image.png'>
私は、あなたはおそらくIISのプラグインやNode.jsのか何かでそれを行うことができますが、それが可能である知っています実際にjQueryを使ってクライアント上でそれを行うには?ページがDOMに追加された後、またはDIVに挿入される前のいずれかになります。
または、DOMに挿入する前にhtmlで置き換えてください: 'returnedHtml.replace("、 "to") '。なぜあなたはnode.jsが必要だと思いますか? –
私は 'html.replace(" from "、" to ")'を試みましたが、それは絶対にすべてを台無しにしました。私はこのアイデアを再訪し、なぜそれがうまくいかなかったのかを見ていきます。ありがとう! – Jeach
私がNode.jsを検討している唯一の理由は、これができることがわかっているからです。しかし、さらに、サードパーティが提供している他のより複雑なAPIがありますが、これは絶対に意味をなさないものです。 Node.jsを使用すると、より多くの制御ができ、それらのAPIのための「アダプタ」を作成できます。しかし、もし私がNode.jsを完全に避けることができれば、それは良いでしょう。 – Jeach