function test1(){ var text1 = "人民の、人民による、人民のための政治"; var data = { "appid":アプリケーションID※, "sentence":text1, "output":"json", "max-result":10, }; var url = "http://jlp.yahooapis.jp/KeyphraseService/V1/extract"; $.ajax({ url: url, data: data, cache: false, dataType: "jsonp", success: function(str_json, type) { console.log(str_json); }, error: function(xmlHttpRequest, textStatus, errorThrown){ $('#res').html(xmlHttpRequest.responseText); } }); }コンソール出力
Object 人民: 100 政治: 35
参考リンク
公式ドキュメント注意
Wikipediaサーバーに負担をかけないよう、リクエストは少なめにすること。1分に30リクエストくらいに抑える。function test1(){ var text1 = '山原'; var data = { "titles":text1, "format":"json", }; var url="http://ja.wikipedia.org/w/api.php?action=query&export"; // AJAX非同期通信 $.ajax({ url: url, data: data, cache: false, dataType: "jsonp", success: function(json, type) { // JSONレスポンスから、XML形式の文章情報を取得する。 var xmlDoc = json['query']['export']['*']; // 文章情報XMLをjQueryで扱えるようにする。 var xml = $(xmlDoc); // XMLからtextタグ内テキストをページ情報として取得する。 var page = xml.find('text').html(); // ページ情報はWiki記法なる方法で記述されている。(もしくはマークダウン記法) console.log(page); // ※ Wiki記法をHTML形式にパースする処理が必要であるが、このソースコードでは割愛する。 }, error: function(xmlHttpRequest, textStatus, errorThrown){ $('#res').html(xmlHttpRequest.responseText); } }); }
参考リンク
MediaWiki API ヘルプvar t = typeof v;
// 文字列 var v = "hello world"; var typ = typeof v; console.log('文字列→' + typ); // 数値 var v = 123; var typ = typeof v; console.log('数値→'+typ); // BOOL var v = true; var typ = typeof v; console.log('BOOL →'+typ); // 日付 var v = new Date().toLocaleDateString(); var typ = typeof v; console.log('日付→'+typ); // 配列 var v = [1,2,3]; var typ = typeof v; console.log('配列→' + typ); // 関数 var v = function(){var dummy}; var typ = typeof v; console.log('関数→' + typ); // 正規表現 var v = /^d/; var typ = typeof v; console.log('正規表現→' + typ); // オブジェクト var v = {}; var typ = typeof v; console.log('オブジェクト→' + typ); // undefined var v = undefined; var typ = typeof v; console.log('undefined→' + typ); // NULL var v = null; var typ = typeof v; console.log('NULL→' + typ); // 未定義 var typ = typeof xxx; console.log('未定義→' + typ); // 例外エラー try{ var dummy = JSON.parse("dummy");//わざとエラー }catch(e){ var typ = typeof e; console.log('例外エラー'+typ); }
文字列→string 数値→number BOOL →boolean 日付→string 配列→object 関数→function 正規表現→object オブジェクト→object undefined→undefined NULL→object 未定義→undefined 例外エラーobject
var s1 = str.charAt(0);
var str = "大トカゲ";
var s1 = str.substr(1);
console.log(s1);// → トカゲ
var s1 = str.slice(-1);
var str = "カモメ群";
var str = str.substr(0,str.length-1);
console.log(str); // → カモメ
/** * データをXSSサニタイズする * * Objectや配列型にも対応している。 * @param multi サニタイズ前のデータ * @return サイニタイズ後のデータ * */ function xssSanitaizeAll(data){ if(typeof data == 'object'){ for(k in data){ data[k] = xssSanitaizeAll(data[k]); } } else if (typeof data == 'string'){ if(data.indexOf('<') != -1){ data = data.replace(/</g, '<'). replace(/>/g,'>'); } } return data; }
var data={'kani':"<input value='xxx' />",'neko':'ねこ','musi':{'bata':'バッタ','kanabun':"x<input type='button'>x"}}; data = xssSanitaizeAll(data); console.log(data);
出力
サニタイズ前kani: neko:ねこ bata:バッタ kanabun:xx
kani:<input value='xxx' /> neko:ねこ bata:バッタ kanabun:x<input type='button'>x
/* * オブジェクト型データのダンプを取得する * * @param obj ダンプ対象オブジェクト(配列やプリミティブ型もOK) * @param key 内部的に使用しているので省略する * @param deep 上に同じ * @return string ダンプ文字列 */ function getObjDump(obj,key,deep){ var str =""; if(deep == undefined){ deep = 0; } if(typeof obj == 'object'){ deep++; for(k in obj){ str+= getObjDump(obj[k],k,deep); } }else{ // 段落用のタブスペースを作成 var sp =""; for(var i=0 ; i < deep ; i++){ sp += "¥t"; } // ダンプするデータを食い立 if(key==undefined){ str = sp + obj + '¥n'; }else{ str = sp + key + ':' + obj + '¥n'; } } return str; }
使用例
var data={'kani':"かに",'neko':'ねこ','musi':{'bata':'バッタ','kanabun':"カナブン"}}; var dump_str = getObjDump(data); console.log(dump_str);
kani:かに neko:ねこ bata:バッタ kanabun:カナブン
// n個だけタブを連結し、結果をタブ連結文字として返す。 function tabSpace(n){ var str =""; for(var i=0 ; i < n ; i++){ str += "\t"; } return str; }
var href = location.href; // 完全なURL
var hash = location.hash; // ハッシュ、またはフラグメント。
var host = location.host; // ホスト名。ポート番号付き。
var hostname = location.hostname; // ホスト名
var pathname = location.pathname; // 相対パス
var port = location.port; // ポート番号
var protocol = location.protocol; // プロトコル
var search = location.search; // クエリ
解説
下記URLでアクセスしているとき、location でサーバーに関する様々なパラメータが取得できる。http://localhost/sample/js/location/location.html?a=1&b=2#xxx
プロパティ | 説明 | 値 |
---|---|---|
href | 完全なURL | http://localhost/sample/js/location/location.html?a=1&b=2#xxx |
hash | ハッシュ、またはフラグメント。 | #xxx |
host | ホスト名。ポート番号付き。 | localhost |
hostname | ホスト名 | localhost |
pathname | 相対パス | /sample/js/location/location.html |
port | ポート番号 | |
protocol | プロトコル | http: |
search | クエリ | ?a=1&b=2 |
var a=1; var b=2; var c=3;
var a=1,b=2,c=3;