現在、フォームも含まれているページのプレーンテキストを置き換えようとしています。フォームを含むコードを置き換えると、フォーム要素が再作成されることを認識しています。これはフォームを壊す可能性があります(そしてそれは私が操作しているウェブページで起こります)。
通常、これは「getElementsByTagName」関数を使用して行い、フォームを含むコードを置き換える必要がないことを確認します。これは、これまで常に可能でした。ただし、この時点で、最小のタグ名が、置き換える必要のあるテキストとフォームを含むdivであるページに到達しました。このdivはさらにテーブルに分割されているので、最初は「要素をテーブルごとに取得しよう」と思っていましたが、正確に置き換える必要のある部分はテーブルに分割されていません。
だから私はこのコードを使って置き換えました:
document.documentElement.innerHTML = document.documentElement.innerHTML.replace(RegEx, replaceString);
もちろん、これはページ上のフォームを壊しますが、これは望ましくない動作です。
フォームを壊さずにこれを実行する方法を誰かが知っていますか?どういうわけか、テーブルを含まないdivの部分への参照を取得することは可能ですか?コードの一部だけを変更することは可能ですか?今、私はコードのインスタンスを取得し、インスタンス内の一致を置き換えてから、元のコードを変更されたインスタンスで上書きします。別のページを試したことを覚えていdocument.documentElement.innerHTML.replace(RegEx, replaceString);
ますが、これは変更されたコードのインスタンスのみを返し、元のコードは変更しませんでした。
これはページの一部です:
<div class="BoxContent" style="background-image:url(http://static.tibia.com/images/global/content/scroll.gif);">
<TABLE></TABLE>
<BR>
Some text here.
<BR>
And some more.
<table></table>
<table></table>
</div>
テーブル間のテキストにいくつかの変更を加える必要があります。
私はSOを見回して、innerHTMLを使用してフォームに物を追加することについて同様の質問を見つけましたが、これは私の原因にはなりませんでした。だから、すべての助けはここでありがたいです!
ケネス