だらけ日記過去ログ:2005年9月7日(水)「アマゾンリンクシステム3」

光希桃AnimeStation

Count Start 1997.9.6
だらけ日記

2005年9月7日(水)「アマゾンリンクシステム3」このエントリーを含むはてなブックマーク

 集計結果自体とは関係ない話。日記なので、日々感じたこととかはメモしておきたい。

 特に作る苦労も少ない終了番組調査の集計結果ページを作るのに何で3日もかかっていたかというと、セコくASINからアマゾンリンクを自動作成するJavaScriptを作っていたからだったり。「アマゾンリンク自動作成システムならアマゾン個別商品案内システムをこの前作ったばかりじゃないか…」と思われた某こころあたりの方、各ページを見ればわかりますが、あのアマゾン個別リンクを自動作成する仕組みとはちょっと違うものを今回作ろうとしました。

 

 アマゾン商品個別リンクといえば、アマゾン推奨で作ると、左のような縦長のIFRAMEが作成されますが、これだといっぱい貼ると重いし、画像も小さく、余計な情報も多い。

 そこで、よく見かける画像と、軽いコメントで構成されたアマゾンリンクをASINから自動生成できないものかと、悩んでいたら1日じゃできないというていたらく。

 いや、画像のアドレスはASINから導き出せることはすぐわかったし、その画像を表示させて、リンクを張るシステムは案外簡単にできた。つっかかったのは「目的とする画像がなかったとき」の処理でした。

 画像がなかったとき、アマゾンはそのURIで1x1の白い画像を返してくるので、条件として「返ってきたきた画像の横幅が1ピクセルのとき…」で処理をすれば問題ないかな? と安易に想像してやってみたところ、Netscapeではうまくいくのに、InternetExplorerではうまくいかない。

 というかNetscapeだけ見て作っていたから、IEの問題に気づいたときにはずいぶん時間が経っていた。

 問題は、for文(複数回処理を繰り返す)で画像(のタグ)を書き、今書いた画像の大きさをそのfor文の中ですぐ見る処理にあった。

 Netscapeでは、今書いたばかりの画像情報も、すぐ拾うことができるのに対し、IEでは、そのfor文が終わったあとでないと、画像の大きさなどの情報が拾えないというトラップでした。

 Netscapeだけで見ていたときは、「どうせ1x1の画像なんだから、それをそのまま残して下に大きい画像入れちゃえ」という処理をさせていたから、「for文以降で再処理」と言われたらシステムを大幅変更するしかない状態に…。

 そしてたどり着いたのが、画像書き換える、「document.images[ImageID].src = 書き換えるURI」というやつ。これで、一度書いた画像が1x1なら、新しい画像に書き換えると言う仕組みが作れる…のですが、ここでさらに問題が。

 ここまでで作ろうとしていたのは、ただ 画像がない>[No Image]画像に差し替え という1段の単純なものではなく、 第1候補の画像がない>第2候補の画像をさがす>なければ仕方がないので[No Image]画像に という2段処理のあるものでした。

 エルフェンリート7巻を例にすると、


 左側の画像(ドロップシャドウ付き)はないけど、右側の画像(影なし)ならある商品がいくつかあったので、ドロップシャドウつきがないだけで、画像なしにしてしまうのは見た目的に勿体ないな…ということでの2段処理でした。

 で、ここで発生した問題というのが、この[No Image]画像に行くまでの流れ、

 第1候補を表示する
  >第1候補が1x1の画像なら第2候補へ
   >第2候補も1x1の画像なら[No Image]画像に

 の中にあり、さっきも書いたとおり、for文が終わるまでは画像情報は更新されないため、それぞれ別のfor文にしました。ですが、第2候補が表示されることは皆無で、第1候補が1x1だとほぼ全部が[No Image]画像になってしまう現象になりました。

 そこで、document.images.width で、各段階で認識されている画像の横幅を表示させてみたところ、「第1位候補で1pxだったやつは最後まで1px」であることがほとんどでした。…つまり、切り替わった画像の情報を取得するいとまがない内に処理が進んでいるということらしく。

 なので上手いこと画像表示タイミングが合うと表示されるという不思議な状態になりました。…これで時間的な問題であることがわかったので、ウエイトをかければ上手く動く…とまではわかったのですが、setTimeout() の使い方がよくわからず(どうやらBODY中のdocument.writeなどには使えないらしい)、setTimeout() を使うためにさらに JavaScript文を大幅修正…。

 画像書き換え関数を時間差で動かすことにより、だいたい目的の画像を表示させることに成功…したのはまたもNetscapeだけ。IEはsetTimeout()もsetInteval()も何か思うように動いてくれない…。

 そしてここであきらめ。相変わらずIEで第2候補が表示されるかどうかは運です。まぁ画像をReloadする関数をHTMLの下の方に書いたので、前よりは出る確率が上がっている感じですが…。

 微妙に報われない苦労の話でした…このスクリプトにしたせいで、Netscapeでも表示されないことがあるようになっちゃったしな…。あとIEで配列名にnameを使うとsplit()で分割できない。なら名前に使えるようにしておくなよ…と。

 おわり。ExcelやってPHPやってJavaScriptやって、かなり頭が混乱した…。特にPHPとJavaScript。文字列結合をつい「.」でやろうとしてしまってエラーが出ること数回。

光希桃AnimeStationのミドルサイズバナーです。これ以外も説明書のコーナーとかにありますので、そちらもご利用下さい。

Contents
だらけ日記過去ログ一覧
だらけ日記 過去ログ最新
あにめ感想にっきV3
旧・あにめ感想にっき
アニメ感想Navi
感想率調査 過去ログ
みきももアンテナ
はてなダイアリー出張所
ママレード・ボーイforever[!]
ママレード・ボーイ補完計画2
タイピングソフトレビュー
アニメ塗りCG
巡礼旅行のコーナー
お持ち帰りのコーナー
自己紹介
更新されない旧日記
サイト説明
更新履歴
Link
いきつけサイト
塚の中。
シャドールーム
帝国大劇場別館
12萌ンキーズ
みでぃずふぁーむ
アニ鳴館
エネルギー吸収と発散
放蕩オペラハウス
No Anime No Life
楽画喜堂
簡易メッセージ
SSL標準装備の無料メールフォーム作成・管理ツール | フォームメーラー
Name:
Mail:
Message:

ここに書かれた内容を
ネタにしてもいいですか?

いい (^O^)
匿名ならいい (^-^)
やめてッ (>_<)

Powered by FormMailer.
Other
光希桃にメール
見てるアニメ
猫ピッチャー(再)
ヘボット!
こねこのチー ポンポンらー大冒険
ぴったんこ!ねこざかな
おはよう!コケッコーさん
きもしば
アバローのプリンセスエレナ
仮面ライダーエグゼイド(特撮)
モンハンストーリーズ RIDE ON
キラキラ☆プリキュア アラモード
DUEL MASTERS
ドラゴンボール
ふるさとめぐり日本の昔ばなし
サンリオキャラクターズ
ONE PIECE
ヴァンガードG NEXT
ミラクルちゅーんず!(特撮)
ちびまる子ちゃん
バトルガール ハイスクール
スカートの中はケダモノでした。
ボールルームへようこそ
最遊記RELOAD BLAST
賭ケグルイ
セントールの悩み
ベイブレードバースト ゴッド
パズドラクロス
がん がん がんこちゃん
恋と嘘
ひとりじめマイヒーロー
異世界食堂
アニメマシテ(実写)
はじめてのギャル
アイドルタイムプリパラ
レゴタイム
GO!GO!ゴマちゃん(2)
潔癖男子!青山くん
ナイツ&マジック
プリンセス・プリンシパル
天使の3P!
妖怪アパートの幽雅な日常
魔法陣グルグル
ナナマル サンバツ
アホガール
徒然チルドレン
BORUTO―ボルト―
遊☆戯☆王VRAINS
ねこねこ日本史(2)
カイトアンサ
イケメン戦国
クリオネの灯り
てーきゅう 9期
ノラと皇女と野良猫ハート
ラファンドール国物語
NEW GAME!!
異世界はスマートフォンとともに。
ヒミツのここたま
アイカツスターズ!
ポケットモンスターサン&ムーン
スナックワールド
月刊ブシロードTV(実写)
アニゲーイレブン(実写)
サクラクエスト
ゲーマーズ!
DIVE!!
コンビニカレシ
あにむす!(実写)
将国のアルタイル
チアフルーツ
リルリルフェアリル
あはれ!名作くん(2)
妖怪ウォッチ
ドラもん
18if
実力至上主義の教室へ
サクラダリセット
地獄少女 宵伽
時間の支配者
RWBY The Beginning
信長の忍び(2)
神撃のバハムートVS
喫茶安元(実写)
無責任ギャラクシー☆タイラー
メイドインアビス
捏造トラップ-NTR-
ぼのぼの
100%パスカル先生
プリプリちぃちゃん!!
タマ&フレンズ うちのタマ
トミカハイパーレスキュー
遊戯王DM 20th リマスター
FCバディファイト バッツ
フューチャー・アベンジャーズ
スパイダーマン
デジモン アプリモンスターズ
特捜警察ジャンポリス(実写)
僕のヒーローアカデミア(2)
境界のRINNE(3)
名探偵コナン
縁結びの妖狐ちゃん
THE REFLECTION WAVE ONE
ひなろじ
Re:CREATORS
Fate/Apocrypha
活撃/刀剣乱舞
戦姫絶唱シンフォギアAXZ
バチカン奇跡調査官
ゴー!ゴー!クックルン
わしも-wasimo-(5)
居残り視聴中(一部)
機動武闘伝Gガンダム(再)
ARIA The ORIGINATION 10
DVD視聴中/視聴予定
伝心・まもって守護月天!
スクールランブル3学期
まほろまてぃっく
まほろまてぃっく〜もっと〜
番組表リンク
TVガイド
しょぼいカレンダー
MOON PHASE

NHK [アニメ]
日本テレビ
TBS[アニメ]
フジテレビ [アニメ]
テレビ朝日 [アニメ]
テレビ東京 [アニメ]

東京MXテレビ[アニメ]
テレビ神奈川[アニメ]
テレビ埼玉

BS日テレ
BS朝日
BS-TBS
BSジャパン[アニメ]
BS FUJI

アニマックス
キッズステーション
ファミリー劇場[アニメ]
カートゥーンネットワーク
チャンネルNECO[アニメ]
日本映画専門CH
LOCAL LINK
RD-S502ネットdeナビ
RD-X5ネットdeナビ
RD-X4ネットdeナビ
RD-XS40ネットdeナビ
RD-X3ネットdeナビ
Amazon.co.jpアソシエイト