2016年2月29日月曜日

PHPサーバーに、javascript ajax でJSON を送信する際に、 「&」「"」のエンコードのメモ

PHPサーバーに、javascript ajax でJSON を送信する際に、
 「&」「"」のエンコードのメモ

他の方法があれば、教えてください。


Javascript 側送信
1.   事前に文字列を置き換

     文字列を書き換えしない場合、送信することが
     できますが PHPサーバー側「&」 リンクが切、「"」は
     文字列エラーになります。
   
     var c = '樂凡&祁隆 - 愛"你一"生';
     JSON.stringify({send:c});     << NG
     c.replace(/&/g,"%26");
     c.replace(/"/g,"%22");

2   encodeURI() でエンコードします。
     c=encodeURI(c);

2.  JSON.stringify で送信します。
   
     JSON.stringify({send:c});





PHPサーバー側受け取る

1.  json_decode で
    JSON エンコードされた文字列を受け取り、
    それを PHP の変数に変換します。

2.  urldecode で
    URL エンコードされた文字列をデコードする。

    $temp = json_decode($p);
    $a = urldecode($temp->send);

 


















2016年2月28日日曜日

JSON.parse ダブルクォーテーションを 解析するとエラーになります。

JSON.parse ダブルクォーテーションを 解析するとエラーになります。
eval 関数以外の方法はないでしょうか?



{"a":"\u6797\u590f\u8587 Rosina Lam \ufe63 \u5f88\u60f3\u8a0e\u53ad\u4f60 I Wish I Could Hate You (TVB\u5287\u96c6\"\u55ae\u6200\u96d9\u57ce\"\u4e3b\u984c\u66f2) (OFFICIAL AUDIO)","b":"\u6a02\u51e1&\u7941\u9686 - \u611b\"\u4f60\u4e00\"\u751f"}













2016年2月26日金曜日

Notepad++ 最後の行を画面の最上に表示する方法

Notepad++  最後の行を画面の最上に表示する方法

Plugin の 「Notepad#」を追加します。


















2016年2月12日金曜日

イメージファイルのオリジナルサイズを確認する

イメージファイルのオリジナルサイズを確認する

.naturalHeight
.naturalWidth 

function item_cards_event(){
        var x = document.getElementsByClassName('item_cards');
        for(var i = 0; i<x.length; i++){
               x[i].addEventListener("mouseover",function(e){
                        this.style.boxShadow = "3px 3px 14px";
                    console.log(this.firstElementChild.nextElementSibling.firstElementChild.naturalWidth + 'x' + this.firstElementChild.nextElementSibling.firstElementChild.naturalHeight);
                },false);

                x[i].addEventListener("mouseout",function(e){
                         this.style.boxShadow = "1px 1px 1px";
                },false);
        }
}

item_cards_event();





function item_cards_event(){
        var x = document.getElementsByClassName('thumbnail_a');
        for(var i = 0; i<x.length; i++){
               x[i].addEventListener("mouseover",function(e){
                        this.style.boxShadow = "3px 3px 14px";
                        console.log(this.firstElementChild.alt);
                        console.log(this.firstElementChild.naturalWidth + 'x' + this.firstElementChild.naturalHeight);
                },false);
                         x[i].addEventListener("mouseout",function(e){
                         this.style.boxShadow = "1px 1px 1px";
                },false);
        }
}

item_cards_event();






2016年2月2日火曜日

location プロパティ

location プロパティ


location.href
"http://www.asus.com/Motherboards/Z170-PRO/?SearchKey=Z170/"

location.origin
"http://www.asus.com"

location.protocol
"http:"

location.host
"www.asus.com"

location.hostname
"www.asus.com"

location.pathname
"/Motherboards/Z170-PRO/"

location.search
"?SearchKey=Z170/"

2016年1月27日水曜日

YouTube IFrame API ,再生リストの動作確認

YouTube IFrame API ,再生リストの動作確認、
以前に作成したプログラムは正常に停止しない、再び最初から
再生が始まります。そのための確認です。

今回のストップボイントは下記となります、各event.コード発生時に
実行します。

function stop(event){
     if(event.target.getPlaylist()){
        if(event.target.getVideoData().video_id == event.target.getPlaylist()[event.target.getPlaylist().length -1]) {
               event.target.stopVideo();
         }else{
               event.target.playVideo();
         }
    }
}




<!DOCTYPE html>
<html>
  <body>
    <!-- 1. The <iframe> (and video player) will replace this <div> tag. -->
    <div id="player"></div>

    <script>
// YouTube Player API Reference for iframe Embeds
// https://developers.google.com/youtube/iframe_api_reference
// 2. This code loads the IFrame Player API code asynchronously.
var tag = document.createElement('script');

tag.src = "https://www.youtube.com/iframe_api";
var firstScriptTag = document.getElementsByTagName('script')[0];
firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);

// 3. This function creates an <iframe> (and YouTube player)
//    after the API code downloads.
var player;
function onYouTubeIframeAPIReady() {
player = new YT.Player('player', {
height: '0',
width: '0',
videoId: 'M7lc1UVf-VE',
events: {
'onReady': onPlayerReady,
'onStateChange': onPlayerStateChange,
'onError' : onPlayerError,
}
});
}

      // 4. The API will call this function when the video player is ready.
    function onPlayerReady(event) {
   console.log(event.target.getPlayerState());
player.cuePlaylist({list:'PLoxAMAuDB1YbftJRZtIlec92SFNAPTnjW'});
        event.target.playVideo();
    }



function onPlayerStateChange(event) {

console.log('event.target.getPlayerState()' + event.target.getPlayerState());
console.log('event.data' + event.data);
console.log('player.getPlaylistId()' + event.target.getPlaylistId());
console.log('player.getPlaylist()' + event.target.getPlaylist());
console.log('player.getPlaylistIndex()' + event.target.getPlaylistIndex());


if(event.target.getPlayerState() == 5){
stop(event);
console.log('5---' + event.target.getPlayerState());

}

if(event.target.getPlayerState() == 4){
stop(event);
console.log('4---' + event.target.getPlayerState());

}

if(event.target.getPlayerState() == 3){
stop(event);
console.log('3---' + event.target.getPlayerState());
}

if(event.target.getPlayerState() == 2){
stop(event);
console.log('2---' + event.target.getPlayerState());

}

if(event.target.getPlayerState()== 1){
stop(event);
console.log('1---' + event.target.getPlayerState());
//event.target.nextVideo();
}

if(event.target.getPlayerState() == 0){
stop(event);
console.log('0--' + event.target.getPlayerState());
}

if(event.target.getPlayerState() == -1){
console.log('-1--' + event.target.getPlayerState());
}
}

function onPlayerError(event){
if(event.target.getPlaylist()){
if(event.target.getVideoData().video_id == event.target.getPlaylist()[event.target.getPlaylist().length -1]) {
event.target.stopVideo();
}else{
event.target.nextVideo();
}
}
}


function stop(event){
if(event.target.getPlaylist()){
if(event.target.getVideoData().video_id == event.target.getPlaylist()[event.target.getPlaylist().length -1]) {
event.target.stopVideo();
}else{
event.target.playVideo();
}
}
 }


    function stop_play() {
console.log(event.target.getPlayerState());
player.stopVideo();
    }


 //player.cuePlaylist({list:'PLoxAMAuDB1YbftJRZtIlec92SFNAPTnjW'});
    </script>
  </body>
</html>

2016年1月23日土曜日

addEventListener 一覧

分類イベントハンドラ発生状況
onloadリソースのロードが完了したとき
onunloadアンロードされたとき (ロードする前)
readystatechangedocumentのreadyState属性が変化したとき
フォーカスonfocus要素が入力フォーカスを得たとき
onblur要素が入力フォーカスを失ったとき
onchangeユーザーが要素の値を変更し、要素が入力フォーカスを失ったとき (プログラムから変更した場合には、イベントは発生しない)
onselectテキストが選択されたとき
oncontextmenuマウスで右クリック、またはアプリケーションキーが押されるなどして、コンテキストメニューが表示されるとき
マウスonclickマウスでクリックされたとき
ondblclickマウスでダブルクリックされたとき
onmousedownマウスボタンが押されたとき
onmouseupマウスボタンが離されたとき
onmouseoverマウスが要素に乗ったとき
onmouseoutマウスが要素から離れたとき
onmousemoveマウスが要素の上を移動したとき
キーonkeydownユーザーがキーを押したとき
onkeypressユーザーがキーを押して離したとき
onkeyupユーザーがキーを離したとき
フォームonsubmitフォームの送信が要求されたとき
onresetフォームのリセットが要求されたとき
onresizeウィンドウのサイズが変更されたとき
(Windowオブジェクトのみ)
onscroll要素のコンテンツがスクロールされたとき
onabort画像のロードが中断されたとき
onerror画像のロード中にエラーが発生したとき