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;