忍者ブログ

Wordpressメモとかアフィめもとか

Wordpress,PHP,アフィリエイトとかの個人メモを記録していくよ

[PR]

×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

JavaScriptのクロスドメイン制限(外部ドメインのファイルを取得とか)

JavaScriptはセキュリティの関係上、JSファイルがある以外のドメインのファイルを参照できない。

解決する方法はいくつかあるみたいだけど、一番簡単な方法っぽいのはPHP等のCGIを経由させる事。

php(getdata.php)

<?php

  $url = 'http://exsample.com/data.xml';
  if(isset( $url )) {
    $file = readfile( $url );
  }
?>

JavaScript(jQuery)
$(function() {
 
  $.ajax({
    type: 'get',
    cache: false,
    dataType: 'xml',
    success: function(xml){
    //成功時の処理
    },
    error: function(){
    //失敗時の処理
    }
  });
});
 

拍手[4回]

PR

JavaScriptでURLアドレスを取得する location.href

JavaScriptで現在のURLを取得したい場合、location.hrefを使用する。

alert ( "URL:" + location.href );


拍手[3回]

JavaScriptで正規表現を使ったグループマッチとか RegExp

正規表現オブジェクトとしてRegExpを使う。構文は下記の通り。

regexp = new RegExp(patern[, flag])


flagは"i","g","m"がある。
フラグとその意味
i→大文字・小文字を区別しない
g→2番目、3番目... にマッチする部分も検索する
m→複数行に対して検索する
複数を組み合わせる場合 igとか続けて書く

単純に文字列からある文字列を探す場合
  • strに"bc"を含んでいるか

str = "abcdef";
ret = new RegExp( "bc", "i" );
if ( str.match ( ret ) ){
  alert ("あるよ!")
}

new RegExpはすべてのものをオブジェクトとして扱うというJavaScriptのポリシーにあわせて用意されたものらしく、通常は下記の記述でよいらしい。
  • strに"bc"を含んでいるか

str = "abcdef";
if ( str.match ( /bc/i ) ){
  alert ("あるよ!")
}
 

正規表現を使う場合
  • strが時:分秒のように2桁の数値が":(コロン)"で区切られている文字列を検索する
str = "12:34:56";
if ( str.match ( /^[0-9][0-9]:[0-9][0-9]:[0-9][0-9]$/ ) ){
  alert ("あるよ!")
}
^[0-9]~~[0-9]$のところが正規表現の部分

グループマッチをさせたい場合フラグ"g"を指定する。
  • strが時:分秒のように2桁の数値が":(コロン)"で区切られている文字列を時、分、秒と取得する
str = "12:34:56". match(/(\d+):(\d+):(\d+)/);
alert ( RegExp.$1 + "時");
alert ( RegExp.$2 + "分");
alert ( RegExp.$3 + "秒");


詳しくはトホホ参照



拍手[3回]

[JavaScript]POSTされた値を取得 location.search

JavaScriptでPOSTされたURLパラメタを取得したい場合、location.serachを使う。

http://www.exsample.com/hoehoe.php?id=1&sort=desc

こんな感じのリクエストがあった場合の

http://www.exsample.com/hoehoe.php?id=1&sort=desc

?id=1&sort=descが取得できる。


var strA = decodeURIComponent(location.search.substring(1));
var strAsp = strA.split('&');
 
これでstrAにはid=1&sort=descが格納される。
リクエストされるパラメタにはURLエンコードされている全角文字も入っているかもしれないので、decodeURLComponentしている。
また、substring(1)をしているのは、同じくパラメタの?を除去しておきたいから。

このままだと、使いにくいので、さらにstrAをforループ等でまわして、連想配列にしてあげると使いやすいカモ。

拍手[0回]

ブログ内検索

最新コメント

広告

プロフィール

なんとなくはじめてみたよ

忍者ツールズプロフィールは終了しました

カウンター