HTMLコード:
<td>
<img src="../images/items/333.png"><br>
<b>Product One</b><br>
(2 in stock)<br>
<i>65 USD</i><br>
<form action="shopping.php?shop=1&item=333&price=65&buy=conf&type=" method="post">
<input name="" value="Buy this item" type="submit">
</form></td>
<td>
<img src="../images/items/444.png"><br>
<b>Product Two</b><br>
(4 in stock)<br>
<i>5 USD</i><br>
<form action="shopping.php?shop=1&item=444&price=5&buy=conf&type=" method="post">
<input name="" value="Buy" type="submit">
</form></td>
これは私が作業しているページのhtmlコードです。htmlコードは変更できません。
上記のコードに表示される次の情報を含むページには、いくつかのtdタグがあります。
次のようなスクリプトを作成したいと思います。
if (document.body.innerHTML.indexOf("Product One") > -1) {
document.location = "shopping.php?shop=1&item="+itemID+"&price="+USD+"&buy=conf&type="
}
ページの本文/tdでスクリプトで指定されている「製品名」を検索し、見つかった場合は、抽出する必要のある変数、itemID、およびUSDを含むURLに移動します。
itemIDは、番号を取得することにより、image.pngのsrcから抽出されます。たとえば、のitemID../images/items/444.png
は444です。
USDは、イタリックタグの間に定義された価格から抽出されます。たとえば、USDの抽出値は<i>5 USD</i>
5になります。
キャッチは
私が指定する多数の製品に対応するには、多くのことが必要になります。if (document.body.innerHTML.indexOf("Name") > -1) {document.location = "shopping.php?shop=1&item="+itemID+"&price="+USD+"&buy=conf&type="}
「ProductOnetoHundred」と「Sub-productAtoZ」を指定したい場合があります
解決
これを処理するために私が考えたいくつかの方法(javascriptコードに入れる必要があります)は次のとおりです。
- 指定する製品のリストを配列(のようなもの)に入れ
var list = new Array ("Product One","Product Two","Sub-Product A");
、ページに表示されるこの配列からの製品の存在についてページをチェックする関数を持たせます。 - 商品が見つかったら、itemIDを取得するために、商品の画像srcから
.png
前後の番号を分離します。/items/
また、USDを取得するには、<i> </i>
タグ間の値を取得し、数値のみを取得します - これを行うには、使用できると思います
nextSibling
がpreviousSibing
、それについてはよくわかりません。 - または、簡単にするために、フォームのアクション値をすぐに見つけて、
window.location
以降を設定する関数を使用することもできます。<form action="shopping.php?shop=1&item=444&price=5&buy=conf&type=" method="post">
- XPathを使用する前にこれが行われるのを見たことがありますか?