https://replit.com/@sworc/js-web-speech![]()
2023年08月04日
2018年03月09日
JavaScript の論理和(||) による『無かった場合の値の代入』/ expr1 || expr2 は expr1 を false と見ることができる場合は expr2 を返します
タイトルのまんまですが、MDN の 『式と演算子』のページに記述されています。 以下は jQuery で取得した文字列値に trim を実行して、空文字列だったら 0 をセットするという処理です。
var value = $("#target").val().trim() || 0;
また、値の変わりに実行文を記述する事もできるので、関数にすれば戻り値がセットされます。
function myfunc ( txt ) {
console.log( txt );
return "未定義";
}
var value = $("#target").val().trim() || myfunc("ここが実行される");
$("#target") の値が未入力または空白の場合、myfunc の引数がデベロッパーツールのコンソールに表示されて、value には "未定義" がセットされます
2018年02月12日
Seesaa の記事に下の『最新の同カテゴリのリスト』のリンクの最後に付く ?seesaa_related=category を削除する方法
どうも、Google が嫌がってるように気がしてならないので削除しました。jQuery 前提なので申し訳無いですが、JavaScript でゴリゴリ書くと長くなるので。 場所は、コンテンツの『記事』の コンテンツHTML編集 でテンプレートを直接変更します。場所は、記事の下の listCategoryArticle を探せばいいと思います。 追加する部分は script 部分のみ <script> 〜 </script> です。
<div class="listCategoryArticle">
【<% article_category.name %>の最新記事】<br />
<ul style='padding-right:25px;'>
<% loop:list_category_article %>
<li><a style='font-size:16px;box-shadow:none;' href="<% article.page_url %>"><% article.subject | text_summary(100) %></a></li>
<% /loop %>
</ul>
<script>
$(".listCategoryArticle a").each( function(){
var url = $(this).prop("href");
url = url.replace("?seesaa_related=category","");
$(this).prop("href", url);
} );
</script>
</div>
タグ:Seesaa javascript
2017年11月18日
JavaScript : ブラウザ判定( IE11 対応 ) / edge を追加
2017-11-18 更新 : edge を追加 ※ 前回投稿日 : 2014-10-02 ▼ 運営中サイトのブラウザ比率 IE11 の登場で少し変わりました(IE11 を一意に識別することが必要な場合があります。 その場合は、Trident トークンを使ってください) IEのシェアは大きいですが、実際問題として IE6、IE7、IE8、IE9、IE10 が存在します。IE 以外では Firefox と Google Chrome を少なくとも視野にいれる必要があります。( あと、Safari もあります ) そういえば、『Operaが独自路線を転換、ブラウザエンジンをWebKitに切り替え』 なんで、気苦労が少し減りますが、相変わらず IE は増える一方で・・・・ちにみに、jQuery 1.9 では、$.browser は削除されています
<script>
function browser_name() {
var userAgent = window.navigator.userAgent.toLowerCase();
var appVersion = window.navigator.appVersion.toLowerCase();
if (userAgent.indexOf("msie") > -1) {
if (appVersion.indexOf("msie 6.0") > -1) {
alert("IE6");
}
else if (appVersion.indexOf("msie 7.0") > -1) {
alert("IE7");
}
else if (appVersion.indexOf("msie 8.0") > -1) {
alert("IE8");
}
else if (appVersion.indexOf("msie 9.0") > -1) {
alert("IE9");
}
else if (appVersion.indexOf("msie 10.0") > -1) {
alert("IE10");
}
else {
alert("Unknown");
}
}
else if (userAgent.indexOf("trident/7.0") > -1) {
alert("IE11");
}
else if (userAgent.indexOf("edge") > -1) {
alert("Edge");
}
else if (userAgent.indexOf("firefox") > -1) {
alert("Firefox");
}
else if (userAgent.indexOf("opera") > -1) {
alert("Opera");
}
else if (userAgent.indexOf("chrome") > -1) {
alert("Google Chrome");
}
else if (userAgent.indexOf("safari") > -1) {
alert("Safari");
}
else {
alert("Unknown");
}
}
</script>
<input type="button" value="表示" onclick="browser_name();">
関連する記事
prototype.js の Browser メソッドを転用して jQueryの名前空間へ投入。IE バージョンも含めてブラウザ(仕様)判定 String オブジェクトにメソッドとして実装 IE と それ以外の判定方法として "ie".browser() で判定できます。 ▼ 実際の実行
<script type="text/javascript">
String.prototype.browser = function() {
var userAgent = window.navigator.userAgent.toLowerCase();
var appVersion = window.navigator.appVersion.toLowerCase();
var target = this.valueOf();
if (userAgent.indexOf("msie") > -1) {
if (appVersion.indexOf("msie 6.0") > -1) {
return ( target == "ie6" || target == "ie" );
}
else if (appVersion.indexOf("msie 7.0") > -1) {
return ( target == "ie7" || target == "ie" );
}
else if (appVersion.indexOf("msie 8.0") > -1) {
return ( target == "ie8" || target == "ie" );
}
else if (appVersion.indexOf("msie 9.0") > -1) {
return ( target == "ie9" || target == "ie" );
}
else if (appVersion.indexOf("msie 10.0") > -1) {
return ( target == "ie10" || target == "ie" );
}
else {
return false;
}
}
else if (userAgent.indexOf("trident/7.0") > -1) {
return ( target == "ie11" || target == "ie" );
}
else if (userAgent.indexOf("edge") > -1) {
return ( target == "edge" );
}
else if (userAgent.indexOf("firefox") > -1) {
return ( target == "firefox" );
}
else if (userAgent.indexOf("opera") > -1) {
return ( target == "opera" );
}
else if (userAgent.indexOf("chrome") > -1) {
return ( target == "chrome" );
}
else if (userAgent.indexOf("safari") > -1) {
return ( target == "safari" );
}
else {
return false;
}
}
</script>
<select id="browser">
<option value="chrome">chrome</oprion>
<option value="firefox">firefox</oprion>
<option value="opera">opera</oprion>
<option value="safari">safari</oprion>
<option value="edge">edge</oprion>
<option value="ie11">ie11</oprion>
<option value="ie10">ie10</oprion>
<option value="ie9">ie9</oprion>
<option value="ie8">ie8</oprion>
<option value="ie7">ie7</oprion>
<option value="ie6">ie6</oprion>
<option value="ie">ie</oprion>
</select>
<input type=button
value="ブラウザ判定"
onclick='alert((document.getElementById("browser").value).browser())'>
jQuery の名前空間に登録
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
<script>
$.extend({
browser_name: (function(){
var userAgent = window.navigator.userAgent.toLowerCase();
var appVersion = window.navigator.appVersion.toLowerCase();
var browser_string = "unknown"
if (userAgent.indexOf("msie") > -1) {
if (appVersion.indexOf("msie 6.0") > -1) {
browser_string = "IE6";
}
else if (appVersion.indexOf("msie 7.0") > -1) {
browser_string = "IE7";
}
else if (appVersion.indexOf("msie 8.0") > -1) {
browser_string = "IE8";
}
else if (appVersion.indexOf("msie 9.0") > -1) {
browser_string = "IE9";
}
else if (appVersion.indexOf("msie 10.0") > -1) {
browser_string = "IE10";
}
}
else if (appVersion.indexOf("trident/7.0") > -1) {
browser_string = "IE11";
}
else if (userAgent.indexOf("edge") > -1) {
browser_string = "Edge";
}
else if (userAgent.indexOf("firefox") > -1) {
browser_string = "Firefox";
}
else if (userAgent.indexOf("opera") > -1) {
browser_string = "Opera";
}
else if (userAgent.indexOf("chrome") > -1) {
browser_string = "Chrome";
}
else if (userAgent.indexOf("safari") > -1) {
browser_string = "Safari";
}
return browser_string;
})()
});
console.log($.browser_name);
</script>
▼ オリジナルコード http://winofsql.jp/VA003334/infoboard.php?id=070828100942&mid=sjscript&pid=3 IE と それ以外だけの判定
<script type="text/javascript">
var ie = window.navigator.appName.toLowerCase().indexOf("microsoft") > -1;
ie |= window.navigator.userAgent.toLowerCase().indexOf("trident/7.0") > -1;
if (ie) {
// IE 用
console.log("IE");
}
else {
// IE 以外用
console.log("IE以外");
}
</script>
2016年10月10日
JavaScript : 入力文字列を 変数用16進数表現 に変換する
\u を使って、ソースコードに埋め込む文字列として、キャラクタセットに依存せずにコードを作成する為に使用します。( "あ" == "\u3042" )
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
<script>
function htmlentities2() {
var a = $("#do_encode").val();
var w = "";
var n = 0;
var p;
for( var i = 0; i < a.length; i++ ) {
p = (a.charCodeAt(i)).toString(16);
if ( p.length > 2 || a.substr( i, 1 ) == "\"" || a.substr( i, 1 ) == "'" ) {
w += "\\u" + ("00"+p).substr(2+p.length-4,4);
}
else {
w += a.substr( i, 1 );
}
}
$("#result").text( w );
}
</script>
<input id="do_encode" type="text" size="60">
<br>
<input
type="button"
value="入力文字列を alert 用16進数表現 に変換"
onclick='htmlentities2()'>
<pre id="result"></pre>
※ JavaScript外部ファイル を charset を使用せずに作成する為に htmlentitie と併用します。
関連する記事 JS : 入力文字列を htmlentitie に変換する
JavaScript : 入力文字列を htmlentity に変換する
一文字づつプログラムで判断して、都合のいいように変換する方法です。
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
<script>
function htmlentities() {
var a = $("#do_encode").val();
var w = "";
for( var i = 0; i < a.length; i++ ) {
if ( $("#check").prop("checked") ) {
if ( a.substr(i,1) == '&' ) {
w += "&";
}
else if ( a.substr(i,1) == '<' ) {
w += "<";
}
else if ( a.substr(i,1) == '>' ) {
w += ">";
}
else if ( a.substr(i,1) == '"' ) {
w += "&#" + a.charCodeAt(i) + ";";
}
else if ( a.substr(i,1) == "'" ) {
w += "&#" + a.charCodeAt(i) + ";";
}
else {
if ( $("#check_jp").prop("checked") ) {
if ( a.charCodeAt(i) > 255 ) {
w += "&#" + a.charCodeAt(i) + ";";
}
else {
w += a.substr(i,1);
}
}
else {
w += a.substr(i,1);
}
}
}
else {
w += "&#" + a.charCodeAt(i) + ";";
}
}
$("#result").text( w );
}
</script>
<input id="do_encode" type="text" size="60">
<br>
<input
type="button"
value="入力文字列を htmlentitie に変換"
onClick='htmlentities()'>
<br>
<label for="check">変換を必要最低限にする</label>
<input type="checkbox" id="check">
/
<label for="check_jp">但し、日本語は変換する</label>
<input type="checkbox" id="check_jp">
<br>
▼ 以下に表示されます
<pre id="result"></pre>
&# を使用して数字で文字列を表す方法に変換します 変換後の文字列は、ボタンの下に表示されます。選択してコピーして下さい。 この文字列は alert 内では、文字列の代替えとしては使用できません
/
▼ 以下に表示されます
関連する記事 JavaScript : 入力文字列を 変数用16進数表現 に変換する
Seesaa の各ページの表示について
Seesaa の 記事がたまに全く表示されない場合があります。その場合は、設定> 詳細設定> ブログ設定 で 最新の情報に更新の『実行ボタン』で記事やアーカイブが最新にビルドされます。 Seesaa のページで、アーカイブとタグページは要注意です。タグページはコンテンツが全く無い状態になりますし、アーカイブページも歯抜けページはコンテンツが存在しないのにページが表示されてしまいます。 また、カテゴリページもそういう意味では完全ではありません。『カテゴリID-番号』というフォーマットで表示されるページですが、実際存在するより大きな番号でも表示されてしまいます。 ※ インデックスページのみ、実際の記事数を超えたページを指定しても最後のページが表示されるようです 対処としては、このようなヘルプ的な情報を固定でページの最後に表示するようにするといいでしょう。具体的には、メインの記事コンテンツの下に『自由形式』を追加し、アーカイブとカテゴリページでのみ表示するように設定し、コンテンツを用意するといいと思います。※ エキスパートモードで表示しています アーカイブとカテゴリページはこのように簡単に設定できますが、タグページは HTML 設定を直接変更して、以下の『タグページでのみ表示される内容』の記述方法で設定する必要があります
<% if:page_name eq 'archive' -%> アーカイブページでのみ表示される内容 <% /if %> <% if:page_name eq 'category' -%> カテゴリページでのみ表示される内容 <% /if %> <% if:page_name eq 'tag' -%> タグページでのみ表示される内容 <% /if %>この記述は、以下の場所で使用します![]()
|
|




※ エキスパートモードで表示しています
アーカイブとカテゴリページはこのように簡単に設定できますが、タグページは HTML 設定を直接変更して、以下の『タグページでのみ表示される内容』の記述方法で設定する必要があります


