top


総投稿数 本 
no_

スポンサーサイト

 --------
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
カテゴリ :スポンサー広告 トラックバック(-) コメント(-)
no_841

ツールアップデート:最近創り始めたツールをアップデート。ポイントは、(世の中に反して)iQuery使わないこと、クロスドメイン、漢字コードだ ・・・ 【創ったmetaboy】

 2009-04-11
 最近の 「紹介metaboy」を反省して、
 少しの時間でも「創るmetaboy」になるべく、
 限られた時間の中で、(使える)小物ツール創り
 をはじめている・・・

 先日作ったいくつかのツールを
 もう一度見直し、少しカスタマイズ。
 「創る」だけじゃね。丁寧に創り学んで
 次に生かさなきゃ・・・

 ●今日のカスタマイズ
hon.jpAPI を利用した「電子書籍」検索 ■hon.jpAPI を利用した「電子書籍」検索
  □クロスドメイン問題で、イメージのソースタグ
   を利用していた方法をやめ、「見つけた!」
   クロスドメインで使えるいい方法! を試す
  □漢字コードを EUC に統一。


パスワード作成ツール ■パスワード作成ツール
  □JavaScript上で、パスワード作成をワンクリック
   で行なう機能に加え、
   ・クロスドメインで別サーバーのPHPに連結
    crypt メソッド利用して、Basic認証で利用できる
    暗号化を同時に行なう


 報告します・・・

  追記に ▼

FC2ブログランキングにほんブログ村 IT技術ブログ Webサイト構築へブログ王ランキング人気ブログランキング人気ホームページランキングへ


more************************************************
◎ hon.jpAPI を利用した「電子書籍」検索
************************************************
 ※右下に貼ってある「ブログパーツ」形式のものだが
  別ウインドウ版はこちら
 ※こちらの記事で、詳細を報告した。

さて、今までの状況の整理:
  ◎命題
   ・hon.jp のAPIに接続して検索するだけでなく
    キーワードを設定として捉え、クッキー保存
    利用者の意向が汲めるよう、検索されたキーワード
    は別のドメインのデータベースに記録される

  ◎問題点
     □img src を書き換える方法をとっていたが、
      あまりうまく動かず、
      ・利用者の動向把握のための
       検索されたキーワードの記録が不安定。

  ◎課題
   ・クロスドメイン問題を解決しつつ、
    確実に コールバックされ、
    ・検索遷移 と同時に
     命題のミッションが実行されること


  ◆どうするか◆
   ・クロスドメインを解決できる情報をもっと探す
    ・JSON や jQuery,Ajax用JSライブラリ は使えるか
    ・方法は他にないか?

  ◆試行錯誤◆
   ×1: jQuery で多用される(らしい)
    ・jQuery.post などを利用してやってみる。

    ・jQuery ライブラリを組み込んでおき
var baseurl = "http://*****.php";
var httpObj = jQuery.post(baseurl,null, function(){
#ここの部分で コールバック動作を記述;
});
 ・・・ などと利用
    ○単独HTMLファイルではうまく行った
    ×ブログパーツなどにして貼りつける場合
     すでに読み込まれている jQueryライブラリ
     コンフリクト
    ・今回はなんとか jQueryライブラリ無しで
     なんとか実現したい

   ×2: 本当に、createXMLHttpRequest などの方法で、
     クロスドメインを回避する方法はないのか
    ・JSON などを利用した方法でもう一度トライ
     (先回は、どうもふまく動かなかった)

    ・jQuery ライブラリを組み込んでおき
var baseurl = "http://*****.php";
var httpObj = createXMLHttpRequest(displayData);
if (httpObj){
httpObj.open("POST",baseurl,true);
httpObj.send(null);
}
 ・・・ などと利用
    ○(やはり)単独HTMLファイルではうまく行った
    ×ブログパーツなどにして貼りつける場合
     どうしても ランタイムエラーが頻発。
    ・漢字コードの問題もありそうだ。

 > ◎3: 一応解決
    ・JavaScriptでクロスドメイン( by Nega Diary )に紹介されていたコード
     で一発解決
var s = document.createElement('script');
s.src = '*****.php'; # ここは実際にはクエリ文字列引き連れる
document.body.appendChild(s);
 ・・・ こんな記述方法があるんだ!
     感激。
     ご存知の方にはなんでもないでしょうが、ありがたい。

  ◆実際◆
    ・このブログには、
<link href="*****.css" rel="stylesheet" type="text/css"><script type="text/javascript">var aid_honjp="metasan";</script><script type="text/javascript" charset="EUC-JP" src="*****/search_honjp.js"></script>
 ・・・ などと、きちんと漢字コード指定して組込み
    ・search_honjp.js の方では、
function iframeSearch_honjp(){
var escKw = encodeURIComponent( document.form_iframe_honjp.kw.value );
if(escKw!=''){
SetCookie(365,'meta_search_honjp',escKw,1);
Go_SetKeyword(2,escKw);
var url = script_url + escKw + '/' + aid_honjp + '/xslt=' + xsl_url + '&max=30&sort=rank90';
iframe_honjp.location.href = url;
}
}
 ・・・ のような トリガ関数で
     基本の、hon.jpAPI を利用する遷移部分を用意しておき

     ここから呼ばれる
function Go_SetKeyword(mid,skey) {
var baseurl = "*****.php";
var vals = "?";
vals += "mid=" + mid;
vals += "&skey=" + encodeURIComponent(skey);
baseurl += vals;

var s = document.createElement('script');
s.src = baseurl;
document.body.appendChild(s);
}
 ・・・ の中で、教えていただいた仕組みを利用する
     はは、そのまんま、だ。

 何はともあれ、これで一応のミッションを達成。
 後は、ブラウザ互換テストを繰り返す のみだ。

 次!

************************************************
◎ パスワード作成ツール
************************************************
 ※右下に貼ってある「ブログパーツ」形式のもの
  別ウインドウ版はこちら
 ※こちらの記事で、詳細を報告した。

さて、今までの状況の整理:
  ◎命題
   ・一応、JavaScriptワンクリックによる
    パスワード生成ツールとしては、使える
    でも、実際の利用を考えるとこれだけでは・・・
   ・よく利用される、「Basic認証」での
    暗号化されたものも、同時に出力したい!

  ◎問題点
     □JavaScriptのみで行なう方法もあるのだろうが、
      現時点ではよくわからない。
      ・今後のほかの用途のためにも、サイトで
       モジュールを用意し、それと連携したいが
      ・当然「クロスドメイン」問題が発生する

  ◎課題
   ・クロスドメイン問題を解決しつつ、
    今回の要求を実現し
    ・ワンクリックで簡単に
     ・パスワード作成
     ・Basic認証用の暗号化文字列が生成されること


  ◆どうするか◆
   ・クロスドメイン解決には、先で紹介してもらったものは
    コールバックで、値を引き渡す部分が難しそうだ。
    ・方法は他にないか?

  ◆試行錯誤◆
   ×1: 先荷紹介された方法でやってみる

    ×うまくゆかない
     原因がどこにあるのか不明だがランライムエラーの頻発

   ×2: 他様々なクロスドメイン解決(?)記事を参考に
       試行錯誤
    ×うまくゆかない

   ・・・・・

 > ◎3: 発見!
    こちらの掲示板でのやりとりされていた方法
    ・Scriptタグでクロスドメイン通信( by TAG Index )に紹介されていたコード
     で解決
    ・JavaScript側で、
var url="http://*****";
//古いノード
var originalNode=document.getElementById("scriptNode");
//新しくノードを作る
var newScriptNode=document.createElement("script");
newScriptNode.src=url;
newScriptNode.charset="utf-8";
newScriptNode.id="scriptNode";
originalNode.parentNode.replaceChild(newScriptNode,originalNode);
}
function CallBack(arg){
alert(arg+arg);
}
 ・・・ としておき

     なるほどねぇ。PHP側で
<?php
$value="CallBack('".$_GET['value']."');";
//print("Content-Type: application/x-javascript; charset=UTF-8;\n\n");
print($value);
?>
 ・・・ とJavaScriptの関数を含んで出力!


     やってみた。
     この掲示板で最後にご報告いただいているエラーもなく
     うまく行った。EUC-JP でも動いている。
     ※多少、試行錯誤はあったけれど

  ◆実際◆
    ・このブログには、
<link href="*****.css" rel="stylesheet" type="text/css"><script type="text/javascript" charset="EUC-JP" src="*****/makepass.js">
 ・・・ などと、きちんと漢字コード指定して組込み
    ・makepass.js の方では、
var toURL = "*****.php?type=cback&temp_instr=" + outstr;
var originalNode=document.getElementById("scriptNode");
var newScriptNode=document.createElement("script");
newScriptNode.src=toURL;
newScriptNode.charset="EUC-JP";
newScriptNode.id="scriptNode";
originalNode.parentNode.replaceChild(newScriptNode,originalNode);
form.val_pw.value = outstr;
 ・・・ と、該当する一連の動きを記述

    ・呼び出される、PHP側では
$temp_outstr=crypt($temp_instr, 'mc');
echo "JavaScript:CallBack('".$temp_outstr."');";
 ・・・ などのように返してやる
     ※当然、値 $temp_instr などは
      事前にエスケープ処理や値チェックの確認を
      行なっておく。

 一応のミッションを達成。

 ■(再度)公開

   □(それぞれ) このブログ右サイドに用意

    ※>別ウインドウで開くものは、
     ・hon.jpAPI を利用した「電子書籍」検索
     ・パスワード作成
     だ。


 さて、次は何を創ろう・・・?
commentsコメント
comment_post












管理者にだけ表示を許可する
commentトラックバック
トラックバックURL:
http://metaboy.blog23.fc2.com/tb.php/841-ba78d0d6
ようこそ
Add to Google 創るmetaboy:RSSフィード
My Yahoo!に追加
最新記事のRSS | 問い合わせ

仕事検索、アルバイト検索、依頼仕事の検索ポータル - 仕事検索.COM - www.jobkensaku.com ツクルン

創るmetaboy - WEB創る、サイト創る、何創る - 創ったmetaboy

 

リンク集

 

最近の記事

 

ブロとも申請フォーム
Sponserd by

さくらのレンタルサーバ さくらのレンタルサーバ
大容量・高機能レンタルサーバー heteml 大容量・高機能レンタルサーバー heteml
XREA (ValueDomain)
お名前.com お名前.com
名づけてねっと名づけてねっと
ムームードメインムームードメイン

 

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。