Everyday Pieces ::
  • Webサービス
  • ブログパーツ
  1. ホーム
  2. プログラミング

ブログパーツ「どこかの駅」(2)

2022年6月18日 プログラミング ブログパーツ

 先日、
ふと「どこかの駅」を使ってみたら、なんかうまく動かない。いつからおかしくなっていたんだろうか・・・うむぅ。

 以前にこちらで書いたように、
MediaWiki API を使って Wikipedia の情報をいわゆるスクレイピングして情報を抽出してやっています。

 調べてみたところ、
スクレイピングの開始ページであるこちらに、「このページのノートに、このページに関する意見があります」とかいう余計な table タグが入っているためと分かりました。必要な情報が一つめの table 内に入っているという前提で抽出してたのでおかしくなっていました(^_^;)

 ということで、
これについては問題が起きないように修正したらアッサリと直ったのですが、別な問題が起こっていることに気が付きました。予めDOM要素の大きさを求めておく必要があったので、getComputedStyle() を使っているのですが、何故か初期の値がゼロになってしまうという問題です。以前はちゃんと動いていたのに何故かうまく行かなくなっている。

 ちなみにlocalhostな環境だとうまく行くのに、何故かサーバーに置いた iframe 内だとダメっぽい・・・。ただ、Chrome の場合は iframe に loading=”lazy” 属性を付けると以前のようにうまく動く。Firefox はそれでもダメ。色々と謎すぎる・・・(^_^;)

 はっきりした原因は不明だが、ブラウザの挙動が何か変わったのだろうか? おそらくDOMの構築が完了してないタイミングで取得しようとしたのでゼロになってしまっている気はするけど・・・。でも、明示的に window.onload のタイミングでやってもうまく行ってくれない。うむぅ・・・。

 とにかくもタイミング的な問題のようなので、値が取得できるまでリトライするように対策してとりあえずどうにかしました。モヤモヤしたやり方だけど、まぁ仕方なし(^_^;)

 そんなわけで、
同様な問題が起きていた「神社★参詣」「温泉地巡行」「鉄道車両博」の各ブログパーツも修正しておきました。

関連記事
ブログパーツ ブログパーツ「鉄道車両博」 MediaWiki APIでWikipediaの情報を取得 ブログパーツ「神社★参詣」 ブログパーツ「温泉地巡行」 ブログパーツ「どこかの駅」

コメントする キャンセル

アドレスが公開されることはありません。が付いている欄は必須項目です。

投稿ナビゲーション

three.jsで遊んでみる(46)
npmからpnpmに替えてみた

カテゴリー

WordPress つぶやき トピック プログラミング

タグ

AS3 enchant.js FamilyTreeVis Flash Geolocation gif.js kinect Linux MMD MoneyTrackNote notifier.js OpenCV PDFカレンダー RISC-V three.js セキュリティ テーマ自作 ブログパーツ 動物 動画 麻雀

アーカイブ

© Everyday Pieces ::