「Javascript/標準javascript」の版間の差分
提供: 初心者エンジニアの簡易メモ
(→android,iphoneで遷移先を変える) |
(→android,iphoneで遷移先を変える) |
||
行301: | 行301: | ||
var url = "https://play.google.com/store/apps/details?id=com.mskjgo.flicklearning&hl=ja"; | var url = "https://play.google.com/store/apps/details?id=com.mskjgo.flicklearning&hl=ja"; | ||
if ((ua.indexOf('iPhone') > 0 && ua.indexOf('iPad') == -1) || ua.indexOf('iPod') > 0) { | if ((ua.indexOf('iPhone') > 0 && ua.indexOf('iPad') == -1) || ua.indexOf('iPod') > 0) { | ||
− | url = "https://itunes.apple.com/jp/app | + | url = "https://itunes.apple.com/jp/app/id1454789018?mt=8"; |
} | } | ||
if (ua.indexOf('Android') > 0) { | if (ua.indexOf('Android') > 0) { |
2019年4月6日 (土) 04:29時点における版
目次
- 1 javascript技術メモ
- 1.1 トレース
- 1.2 キャスト
- 1.3 整数化
- 1.4 3桁,区切り
- 1.5 配列宣言
- 1.6 配列追加
- 1.7 objからjson変換
- 1.8 文字列式から値を得る
- 1.9 タグ付け
- 1.10 置換
- 1.11 正規表現
- 1.12 正規表現でタイトルタグ取得
- 1.13 undefined判定
- 1.14 bodyエレメント
- 1.15 エレメント書換
- 1.16 タグ名でエレメント書換
- 1.17 エレメント追加・削除
- 1.18 別のid付きdivタグをあるdivタグへ追加
- 1.19 内部データ表示
- 1.20 postする
- 1.21 radioボタンを押すと自動でsubmitを実行
- 1.22 ブラウザからJSをデバック実行
- 1.23 ブラウザからクッキーデータを表示
- 1.24 select選択後、自動読み込み
- 1.25 Selectタグ表示・非表示(IE6用)
- 1.26 リンクからjavascript実行
- 1.27 ieでjavascriptを切る
- 1.28 javascriptからjavascriptを呼び出す
- 1.29 イベント追加処理(ie8以下のみ不可能
- 1.30 開く閉じるのサンプル
- 1.31 全てチェックのサンプル
- 1.32 一定時間で実行
- 1.33 データ追加
- 1.34 while文
- 1.35 うるう年
- 1.36 検索フォームが空のときは実行しない
- 1.37 onload処理追加
- 1.38 android,iphoneで遷移先を変える
javascript技術メモ
トレース
alert("test"); //firebugが使えれば console.log("test");
キャスト
文字列から数字
parseInt("1234");
数字から文字列
num = 1234; num.toString(10); // "1234"
整数化
parseInt(1.23);
3桁,区切り
num = num.toLocaleString() // 1,234
配列宣言
xx = new Array(); xx[0] = "AAA"; delete xx[1]; // 要素削除
xx = []; // でも良い
配列追加
xx = []; xx.push("hoge");
objからjson変換
JSON.stringify(obj);
文字列式から値を得る
ans = eval("1 + (2 * 3)");
タグ付け
document.write("太字".bold());
置換
str = 'hogehoge'; str = str.replace(/hoge/g, 'piyo'); // piyopiyo
正規表現
str = "123:345"; x = str.match(/[\d]+/g); for (i in x) { alert(x[i]); } "12:34".match(/(\d+):\d+/); document.write(RegExp.$1); // → 12
正規表現でタイトルタグ取得
var html = "<title>testdesu</title>"; var titlematch = html.match(/<title>([^<]*)<\/title>/i); var title = (titlematch != null) ? titlematch[1] : null;
undefined判定
if (typeof hoge !== "undefined") {
bodyエレメント
document.body document.getElementsByTagName("body")[0] // こっちだとIEで使えない
エレメント書換
document.getElementById("id1").src = "http://k.yimg.jp/images/top/sp/ylogo_n.gif"; <img id="id1" src="xx.gif">
document.allはie用なので使用しない。
タグ名でエレメント書換
oElements = document.getElementsByTagName("img"); for (i = 0; i < oElements.length; i++) { oElements[i].src = "http://k.yimg.jp/images/top/sp/ylogo_n.gif"; }
エレメント追加・削除
// 追加 var oDiv = document.createElement("div"); oDiv.setAttribute('id', 'id1'); oDiv.innerHTML = "test"; document.body.appendChild(oDiv);
// 削除 var oDiv = document.getElementById("id1"); oDiv.parentNode.removeChild(oDiv);
// 先頭に追加 document.getElementsByTagName("body")[0].insertBefore(oDiv, document.getElementsByTagName("body")[0].firstChild);
別のid付きdivタグをあるdivタグへ追加
document.getElementById("ad_300x250_dummy") .appendChild(document.getElementById("ad_300x250_source"));
内部データ表示
for (i in objdata) { document.write(i+"<br>"+objdata[i]+"<br><br>"); }
postする
function fpost() { window.open("about:blank", "postWindow", "width=550,height=600").focus(); document.f1.url.value = "http://www.google.com"; document.f1.submit(); }
フォーム
var f = document.createElement("form"); f.setAttribute("action", "ttp://localhost/request.php"); f.setAttribute("method", "post"); f.setAttribute("target", "postWindowPopup"); f.setAttribute("name", "postWindow"); f.setAttribute("id", "postWindow"); f.style.display="none"; var i = document.createElement("input"); i.setAttribute("type","hidden"); i.setAttribute("name","url"); i.setAttribute("value",""); f.appendChild(i); document.getElementsByTagName("body")[0].appendChild(f);
ボタン
<input type="button" value="OK" onclick="return fpost();">
radioボタンを押すと自動でsubmitを実行
<form action="/hogehoge" method="POST"> <input type="radio" name="mode" onclick="javascript:this.parentNode.submit();" />hoge <input type="radio" name="mode" onclick="javascript:this.parentNode.submit();" />fuga <input type="submit" value="表示"> </form>
ブラウザからJSをデバック実行
パス表示欄にjavascript:alert(ファンクション名)と設定すると中身を閲覧できる。
ブラウザからクッキーデータを表示
javascript:alert(document.cookie)
select選択後、自動読み込み
<form name="f1" action="./"> <select name="d1" onchange="javascript:document.f1.submit();"> <option value="1">1 <option value="2">2 </select> <input type="submit" value="送る"> </form>
Selectタグ表示・非表示(IE6用)
var selectErrorTag = function(dp) { if (navigator.userAgent.indexOf("MSIE 6") == -1) {return;} // IE6以外は抜ける if (dp != "visible" && dp != "hidden") {return;} // 表示・非表示 var selects = document.getElementsByTagName('select'); if (selects == null) {return;} for (var i = 0;i < selects.length;i++) { selects[i].style.visibility = dp; } }; selectErrorTag("hidden"); selectErrorTag("visible");
リンクからjavascript実行
<a href="javascript:method1(' + num + ')">a</a>
ieでjavascriptを切る
インターネットオプション・セキュリティ・レベルカスタマイズ・スクリプト・アクティブスクリプトを無効
javascriptからjavascriptを呼び出す
document.write(unescape("%3Cscript src='http%3A//www.example.com/test.js' type='text/javascript' charset='utf-8'%3E%3C/script%3E")); エスケープはhttp://www.broadband-xp.com/hidesource/escape.htmlで調査可能
イベント追加処理(ie8以下のみ不可能
var target = document.getElementById('btn1'); target.addEventListener("click", click1, error1); function click1(e) { alert("test"); } function error1(e) { alert("err"); }
開く閉じるのサンプル
<html> <head> <script type="text/javascript"> <!-- function close1() { document.getElementById('select').style.display='none'; document.getElementById('link').innerHTML="<a href='javascript:void(0);' onClick='open1();'>開く</a>"; } function open1() { document.getElementById('select').style.display='block'; document.getElementById('link').innerHTML="<a href='javascript:void(0);' onClick='close1();'>閉じる</a>"; } //--> </script> </head> <body> ■<span id="link"><a href="javascript:void(0);" onClick="open1();">開く</a></span> <div id="select" style="display:none;"> <SELECT name="select1"> <OPTION value="0" selected>test</OPTION> <OPTION value="1">test1</OPTION> </SELECT> </div> </body> </html>
全てチェックのサンプル
<html> <head> <script> /** * 全てチェック */ function allcheck(argfrm, argelname, argischecked) { var i = 0; var cntel = 0; if (argfrm.elements[argelname].length == null) { argfrm.elements[argelname].checked = argischecked; } else { cntel = argfrm.elements[argelname].length; for (i = 0; i < cntel; i++) { argfrm.elements[argelname][i].checked = argischecked; } } return true; } </script> </head> <body> <a href='#' onclick='allcheck(f1, "chki[]", true); return false;'>すべてチェック</a>|<a href='#' onclick='allcheck(f1, "chki[]", false); return false;'>すべて解除</a> <form action="/" method="post" name="f1"> <input type='checkbox' name='chki[]' value='1' checked> <input type='checkbox' name='chki[]' value='2' checked> <input type='checkbox' name='chki[]' value='3' checked> </form> </body> </html>
一定時間で実行
myfunc(); function myfunc() { alert("test"); var timerID = setTimeout("myfunc()",10000); }
データ追加
var users = ['taro', 'suzuki']; users[5] = 'takagi'; for (var i in users) { console.log(i + ":" + users[i]); } 0:taro 1:suzuki 5:takagi
while文
i = 10; while (i < 20) { i++; console.log(i); }
うるう年
console.log(checkLeap(2000)); function checkLeap(year) { if (year % 4 == 0) { if (year % 100 == 0) { if (year % 400 == 0) { return true; } return false; } return true; } return false; }
一行で書く場合:http://www.hoge256.net/2007/08/64.html
検索フォームが空のときは実行しない
<form action="/" name="form_bottom" onSubmit="if(!query.value) return false;"> <input type="text" value="" name="query" /> <input type="submit" /> </form>
onload処理追加
window.onload = function(){ // ここに処理追加 }
参照: http://qiita.com/mimoe/items/74cb3a01a30162759fdd
android,iphoneで遷移先を変える
<center> <a href="https://play.google.com/store/apps/details?id=com.mskjgo.flicklearning&hl=ja" title="スマホでタイピングならフリッ>クラーニング" target="_blank" onclick="ad_click();"> <img src="/assets/img/flicklearning_300x250-min.png?20190403" height="250px" alt="フリックラーニング" border="1" /> </a> </center> <script type="text/javascript"> function ad_click() { var ua = navigator.userAgent; var url = "https://play.google.com/store/apps/details?id=com.mskjgo.flicklearning&hl=ja"; if ((ua.indexOf('iPhone') > 0 && ua.indexOf('iPad') == -1) || ua.indexOf('iPod') > 0) { url = "https://itunes.apple.com/jp/app/id1454789018?mt=8"; } if (ua.indexOf('Android') > 0) { url = "https://play.google.com/store/apps/details?id=com.mskjgo.flicklearning&hl=ja"; } window.open(url, '_blank'); } ad_click(); </script>