リファラーが取れない・・・IE限定

またまたIE地獄

javascript経由でページ遷移しなくてはならくて
飛び先でリファラーを取得しようとしても
location.hrefで遷移するとリファラーが取得できない・・・。

対処法

後からDOM操作で追加するでもよいのでformタグを追加します。

<form method="get" action="リンク先URL" id="Id名"></form>

javascriptはこんなかんじ

function clickAction()
{
location.target= "_blank";
document.getElementById("Id名").submit();
}

遷移先に変数を渡したい場合はリンク先URLのおしりに直接くつけるのではなく
inputタグを利用するとうまくいきます。
理由はわかりません。

<form method="get" action="リンク先URL" id="Id名"><input type="hidden" name="id" value="hoge"></form>

直リンのFlash(ブログパーツとか)
だとリファラーが取れないのでjavascript経由で取得することになるんですが
飛び先でリファラー取得する場合
まさかのIE地獄でしたとさ。

Tags: ,

JSでのエラーを受け取る方法

ブラウザが返却するエラーをキャッチしたい。
たとえばxmlのノードをパース失敗したときundefinedで返して欲しいのに
ブラウザでエラー、
その時点でjavascriptの処理が終わっちゃいますよね。

実は今回ガジェットを作る際、
amazonから返してほしいノードが商品によって
あったりなかったりして非常にこまりました。

んでこのtry-catch文

try{
// 何らかのプログラム
}catch( e ){
alert( e ); // バグの内容をダイアログで表示する
}

これをつかうとエラーをキャッチしてその後catch文の処理を行い
そのまま次のコードへ進行できます。

Ajaxやるにはほぼ必須というのも頷けます。
javascriptのデバッグにつかえますね。

参考サイト ウィキブックス JavaScript try-catch文 

Tags: ,