私の問題を説明するより良い方法がわかりません。次の JS コードを数回繰り返しています。
window.kgmp["marker23"]=new InfoBox({
content: "<div class=\"wrapBox\" align=\"left\"><div class=\"imageBox\"><span class=\"imageWrap\"><img src=\"http:\/\/www.MYSITE.com\/wp-content\/uploads\/2011\/04\/Hellespont (3).jpg\" alt=\"\"\/><\/span><\/div><div class=\"specsBox\"><h2>HMS Hellespont<\/h2><div class=\"shortDesc\"><p>one of the last steam paddle tugs to be built, forgotten till the late 1990\u2019s.<\/p><\/div><a class=\"moreInfo\" href=\"javascript:showMarker(23);\">more details »<\/a><\/div><\/div>",
disableAutoPan: false,
maxWidth: 0,
pixelOffset: new google.maps.Size(-134, 0),
zIndex: null,
boxStyle: {
background: "",
border: "none",
font: "12px Georgia",
width: "249px",
height: "115px",
padding: "20px 10px 10px 10px",
position: "absolute"
},
closeBoxURL: "",
infoBoxClearance: new google.maps.Size(1, 1),
isHidden: false,
pane: "floatPane",
enableEventPropagation: false
});
注意:これは生成されたコードです。これは、不適切な書式設定 (長い行や多数のリテラルなど) がある理由を説明しています。マーカーはいくつかの理由でグローバル変数に保存されます。「グローバル変数は悪のマントラです」と続ける必要はありません、ありがとう。
では、どこに問題があるのでしょうか。
上記のコードを 2 つ以上使用してページを数回実行した後、Firebug で多くの 404 エラーに気付き始めました。そのうちの 1 つは次のとおりです。
「NetworkError: 404 が見つかりません - http://www.MYWEBSITE.com/user/holiday-planner/%5C%22http:%5C/%5C/www.MYWEBSITE.com%5C/wp-content%5C/uploads% 5C/2011%5C/04%5C/ヘレスポント」
以下に、注意すべき重要な点をいくつか示します。
- 画像はどこにも参照されていません。
- 画像を含む HTML は完全に機能します (呼び出された場合)。
- 404 エラーの画像 URL が間違っています。これは、ユーザーがいる現在のページ (
http://www.MYSITE.com/user/holiday-planner/5-marsascala-zejtun-marsaxlokk-birzebbugia
) を基準にしています。 - JavaScriptの部分から、コードは適切にエンコードされているようで、JSエラーはまったく発生しません。
- CDATA を使用してみましたが、役に立ちませんでした。繰り返しになりますが、私は CDATA のがらくたが好きではないので、それは良いことです。
- これを Firefox 3.6 でテストしています。数分で他の人にも試してみます... Chrome と Safari はこの問題の影響を受けないようです。