ブックマークレットで教えて頂きたいのですが、


アマゾンで"欲しい物リストに追加する"をクリックするように振る舞うブックマークレットを作りたいのです、

アマゾンのソース
<input title="ほしい物リストに追加する" alt="ほしい物リストに追加する" class="dpSprite s_add2WishList" id="" value="" name="submit.add-to-registry.wishlist" src="http://g-ec2.images-amazon.com/xxx_.gif" border="0" type="image">

submit.add-to-registry.wishlistをどうにかすればいいと思うのですが、さっぱりわかりません。教えて下さい。
よろしくお願い致します。

また、javascriptを勉強するうえで、いい書籍があったら教えてもらえると嬉しいです。

回答の条件
  • 1人2回まで
  • 登録:2009/04/09 19:14:19
  • 終了:2009/04/14 16:19:15

回答(1件)

id:gatchan No.1

gatchan回答回数9ベストアンサー獲得回数12009/04/09 20:36:07

ポイント70pt

コード:

javascript:document.getElementsByName("submit.add-to-registry.wishlist")[0].click()

でいけました。

動作確認:IE7とFirefox3 たぶんChromeあたりもいけるんじゃないかと。

※ログイン済で、各当商品のページを表示していることが条件となります。


あっさりうまくいきましたが過程を


1.まず、オブジェクトが取得できるか確認してみる。

javascript:alert(document.getElementsByName("submit.add-to-registry.wishlist").length);//1が表示される

2.取得できるとわかったので、要素にアクセスしてみる

javascript:alert(document.getElementsByName("submit.add-to-registry.wishlist")[0]);//[object HTMLInputElement]が表示される←Firefoxの場合

3.アクセスが問題なく成功したので、オブジェクトのメソッドclick()を利用する(今回の場合これでいいかと)

javascript:document.getElementsByName("submit.add-to-registry.wishlist")[0].click();

けど、最初に「確かclick()メソッドがあったな~」てところから入りました。

で、それを利用できればすんなりうまくいくだろうとw


書籍は

JavaScript 第5版 をじっくり読んでみるとよいと思います。私も全ては読めてないんですが><;

Amazon.co.jp: JavaScript 第5版: David Flanagan, 村上 列: 本

id:giva_0311

おお、有り難うございます。

丁寧に過程まで説明して下さって勉強になりました。

JavaScript 第5版を欲しい物リストにさっそく登録しました。

2009/04/09 21:08:25
  • id:gatchan
    1.ですが、

    ちょっとポイントを端折りすぎたので補足を・・・

    ●単純なコードで済んだ理由:
    今回の場合割と「すんなり」いけたパターンですが、これはnameの値が"submit.add-to-registry.wishlist"で、nameの値に重複がなかった「ページ」だったからこれでうまくいってますが、もしかするとページによっては"submit.add-to-registry.wishlist"という値が他に存在する可能性も予測していなければなりません。(まあこれは敢えて可能性として)
    これはメソッド名がそれを言わんとしているのがわかります→getElementsByName() → Elementsということは複数になりえる=配列オブジェクトになる

    この辺はDOM(Document Object Model )を勉強なさったらよいかと思います。


    単純なコードで済んだのは、配列の要素数が「たまたま」1つだったのでarray[0]というやり方で直接アクセスできただけです。
    もし要素数が1つじゃなかったら、更に各当するオブジェクトを探し当てる作業が入ってきますので。

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません