◎正当な理由による書き込みの削除について:      生島英之とみられる方へ:

+ JavaScript の質問用スレッド vol.125 + [転載禁止]©2ch.net ->画像>13枚


動画、画像抽出 || この掲示板へ 類似スレ 掲示板一覧 人気スレ 動画人気順

このスレへの固定リンク: http://5chb.net/r/hp/1436910657/
ヒント:5chスレのurlに http://xxxx.5chb.net/xxxx のようにbを入れるだけでここでスレ保存、閲覧できます。

1 :Name_Not_Found:2015/07/15(水) 06:50:57.34 ID:g/Ql1BuT
JavaScript を自ら学ぶ人のための質問スレッドです。
>>2-4のテンプレを読んだ上で質問してください。

■質問を書く上で
(1) 煽り、コード制作依頼等、人を不快にさせる投稿はご遠慮下さい。公序良俗を守った応対を心がけてください。
(2) 他の人に迷惑をかけるスクリプトの質問はご遠慮ください。
  (ブラクラ、[戻る], [閉じる], [クリック] の妨害、画面占有など)
(3) 質問者及び議論を行う人はメール欄を空欄にし、名前にレス番を入れることを強く推奨します。回答者はなりすましを判断できませんので、なりすましが現れても自己責任となります。
(4) 常に自発的に調べる心構えを持ってください。
  具体的には「自分で調べてから質問する」「回答をもらってわからない単語があればGoogle検索してみる」など。
  わからない内容を代わりに調べてくれる回答者をお望みの方は余所で質問してください。
(5) 出来るだけ一般的な用語を使用してください。脳内オレオレ用語は混乱の元です。
(6) 出来るだけサンプルコードを掲示してください。言葉による説明は行き違いが生まれる場合があります。
  ※必ず「問題の事象が再現されること」を確認してください。
   必要な部分だけ切り出したつもりで現象が再現できていなかったケアレスミスがしばしば見られます。
(7) サンプルコードに HTML が含まれる場合は http://validator.w3.org/ で [Check] してみてください。
(8) 質問を具体的かつ詳細に書くと回答を得られやすいです。>>2の質問テンプレートを活用してみてください。
(9) ライブラリ関連の話題は禁止です。関連スレにあるライブラリ質問スレで質問して下さい。
(10) 時にはあなたが望む「答え」だけでなく、「意見」などが寄せられる場合もあります。

2 :Name_Not_Found:2015/07/15(水) 06:51:42.46 ID:g/Ql1BuT
■質問テンプレート
【環境】OS, ブラウザをバージョンと共に記入してください。(ex: IE8, Firefox4)
【何をしたのか】何をしたら問題の現象が発生するのか。再現手順を具体的に書いてください。
【エラーメッセージ】エラーメッセージがあれば正確に書き写してください。(Windows なら「コピット」を活用)
【期待する結果】最終的にどういう結果を望んでいるのか、を書いてください。
【サンプルコード】現象を再現可能な最小限のコードを書いてください。
 1レスに収まらないならコード投稿サイトを利用してください。
 http://jsdo.it/ http://jsbin.com/ http://jsfiddle.net/ http://ideone.com/

■前スレ
+ JavaScript の質問用スレッド vol.124 + [転載禁止]©2ch.net
http://peace.2ch.net/test/read.cgi/hp/1429873274/

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

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

■関連スレ
ECMAScript デス 4
http://peace.2ch.net/test/read.cgi/tech/1325448978/
JavaScript ライブラリ総合質問所 vol.4
http://peace.2ch.net/test/read.cgi/hp/1400834117/
CSS初心者スレッド=13th=©2ch.net
http://peace.2ch.net/test/read.cgi/hp/1423959729/
Canvasについて語ろう
http://peace.2ch.net/test/read.cgi/hp/1305093769/

3 :Name_Not_Found:2015/07/15(水) 06:52:20.96 ID:g/Ql1BuT
■FAQ
http://fiddle.jshell.net/vSqKr/43/show/

■開発者ツール(Developer Tools)の基本的な使い方 (全部は http://fiddle.jshell.net/vSqKr/43/show/#Browser-Developer-Tools )
◆諸注意
- 本説明では Google Chrome の開発者ツールの名称に従います。他ブラウザで使う場合は適宜読み替えて下さい。
- IE9- でコンソールを使うには予め開発者ツールを起動しておく必要があります(開発者ツールを起動しないと console.log() が機能しません)
- Safari はデフォルトで開発者ツールが無効な為、有効に設定する必要があります。
  https://developer.apple.com/library/safari/documentation/AppleApplications/Conceptual/Safari_Developer_Guide/GettingStarted/GettingStarted.html
◆要素を検証
1. ページ上で右クリックして [要素を検証]
2. [Elements] パネルが開き、対象のDOMノードが選択される(選択対象が目的の要素でなければ [Elements] パネル上で選択し直す)
3. 右側のサイドバーから知りたいステータス名のタブを選択する
  - [Styles] タブ … CSSプロパティの指定値を表示 (※カスケードによって上書きされたプロパティは取り消し線で表示される)
  - [Computed] タブ … CSSプロパティの算出値を表示("font-size: 1em" を指定していても算出後の "*px" で表示される)
  - [Properties] タブ … 選択したDOMノードのプロパティを表示
◆コンソール
1. JavaScript コード上で console.log('Hello, World!'); と入力
2. [Ctrl] + [Shift] + [I] キー(IE は [F12])で開発者ツールを開き、[Console] パネルを開く
3. [Console] パネルに "Hello, World!" と表示される
(※window.alert() は String 型に変換されますが、console.log() は Object 型の中身をそのまま表示してくれます。)

4 :Name_Not_Found:2015/07/15(水) 06:53:20.20 ID:g/Ql1BuT
■各種仕様 ( http://fiddle.jshell.net/vSqKr/43/show/#Link も参照 )
◆ Standard ECMA-262
http://bclary.com/2004/11/07/ (ECMAScript 3 HTML版)
https://web.archive.org/web/20140715002617/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://tsofthome.appspot.com/ecmascript.html (ECMAScript 5.1 和訳)
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

5 :Name_Not_Found:2015/07/15(水) 06:53:59.73 ID:g/Ql1BuT
■各種仕様 (続き)
◆ JavaScript Garden (ja)
http://bonsaiden.github.com/JavaScript-Garden/ja/
◆ JSON (JavaScript Object Notation)
http://www.json.org/json-ja.html

■諸注意
vol.115でlodashを不必要に推奨して啓蒙する行為が多く確認されており、ライブラリ系の話題はvol.116から禁止されました。
vol.115,116ではライブラリ禁止する発言が見られた直後にライブラリを許可する意図で次スレを立てる行為が確認されています。
本スレッドでライブラリ許可を求める発言が確認された場合は不要な争いを避ける為、スルーすることを推奨します。
ライブラリの話題はライブラリスレへ誘導し、誘導行為への反論はスルーしてください。

6 :Name_Not_Found:2015/07/15(水) 11:49:18.74 ID:???
■JavaScript主要ライブラリ・フレームワーク

jQuery
http://jquery.com/
jQuery UI
http://jqueryui.com/
jQuery Mobile
http://jquerymobile.com/
Lo-Dash
https://lodash.com/
Backbone.js
http://backbonejs.org/
Underscore.js
http://underscorejs.org/
AngularJS
https://angularjs.org/
Knockoutjs
http://knockoutjs.com/
RequireJS
http://requirejs.org/
D3.js
http://d3js.org/
threejs
http://threejs.org/

7 :Name_Not_Found:2015/07/15(水) 13:32:27.03 ID:???
>>1-5
乙。
>>6はスルーで。

8 :Name_Not_Found:2015/07/15(水) 13:43:18.93 ID:???
ライブラリ許容派が立てたスレ一覧。

+ JavaScript の質問用スレッド vol.121 +
http://peace.2ch.net/test/read.cgi/hp/1410603104/
+ JavaScript の質問用スレッド vol.122 + [転載禁止](c)2ch.net
http://peace.2ch.net/test/read.cgi/hp/1418395948/
+ JavaScript の質問用スレッド vol.123 + [転載禁止](c)2ch.net
http://peace.2ch.net/test/read.cgi/hp/1423910471/
+ JavaScript の質問用スレッド vol.123 +(c)2ch.net
http://peace.2ch.net/test/read.cgi/hp/1423913913/
+ JavaScript の質問用スレッド vol.123 + [転載禁止](c)2ch.net
http://peace.2ch.net/test/read.cgi/hp/1422084185/
+ JavaScript の質問用スレッド vol.124 + [転載禁止](c)2ch.net
http://peace.2ch.net/test/read.cgi/hp/1427008867/
+ JavaScript の質問用スレッド vol.125 + [転載禁止](c)2ch.net
http://peace.2ch.net/test/read.cgi/hp/1436400138/

9 :Name_Not_Found:2015/07/15(水) 19:31:17.75 ID:???
久しぶりに来た

10 :Name_Not_Found:2015/07/15(水) 23:46:17.23 ID:???
待ったりでも平和がいいな

11 :Name_Not_Found:2015/07/16(木) 01:14:23.65 ID:???
雑談スレじゃないんだからまったりとかいらない

12 :Name_Not_Found:2015/07/16(木) 01:23:38.87 ID:???
こち亀より文章がおおいスレはここですか

13 :Name_Not_Found:2015/07/16(木) 07:57:01.12 ID:???
>>11
殺伐とした雰囲気よりも平和が一番って事だよ

14 :Name_Not_Found:2015/07/16(木) 11:28:24.07 ID:???
>>13
2chは初めてか?
最近はこのスレで殺伐とした雰囲気はない
今は回答者も比較的丁寧だけど、昔もっと質問者と回答者が多かった時は徹底的にコケにしあってた

15 :Name_Not_Found:2015/07/16(木) 11:36:35.51 ID:KjyP2FDF
>>1乙です。
早速ですが、アイフレームの高さ調整に関するスクリプトの質問をさせて下さい…。

【html】

<!―デティールタグとアイフレームでカテゴリ記事20件を表示-->

<section><details> <summary><b>カテゴリの最新記事</b></summary>
<iframe src="http://ほにゃらら.html" frameborder="0" scrolling="no" ></iframe>
</details></section>

<!―アイフレームの高さを自動調整するスクリプト-->
<script>
$('iframe')
.on('load', function(){
try {
$(this).height(this.contentWindow.document.documentElement.scrollHeight);
} catch (e) {
}
})
.trigger('load');
</script>


【結果】
+ JavaScript の質問用スレッド vol.125 + [転載禁止]©2ch.net ->画像>13枚
こういう風に下に空白が出来てしまうのです…。
要素検証でスクリプトによって指定した高さの値を見てみると、アイフレームで読み込んだ元ページの高さの二倍ほどになっています。
ただ、detailsタグで隠さなければ正しい高さで表示されるんです…。
一体何が原因なのでしょうか?

16 :Name_Not_Found:2015/07/16(木) 12:38:05.81 ID:???
>>15
http://peace.2ch.net/test/read.cgi/hp/1424788106/656- からのマルチポストですね
CSSの答えを向こうに書きました

17 :Name_Not_Found:2015/07/16(木) 16:59:22.80 ID:???
>>14
最近の荒れ模様を見てるとそうは見えないけどね
vol.114までは平和だった

18 :Name_Not_Found:2015/07/16(木) 23:23:26.48 ID:???
>>17
ただ一人二人が暴れているだけ。
昔は例えば初心者ですと書かれただけでスレの回答者が総出で叩き潰してた。
それに比べたら皆寛容になったほうだ。

19 :Name_Not_Found:2015/07/18(土) 01:36:52.90 ID:???
初心者です
Javaスクリプトってなんですか?

20 :Name_Not_Found:2015/07/18(土) 11:27:53.91 ID:???
質問です。
正規表現の文字クラスの中に後方参照を使おうと思うのですが上手くいきません…。
なにか書き方が間違っていますでしょうか?

var re = /^(.)[^a\1]$/; // 1文字目は任意、2文字目は"a"と1文字目以外の文字ならマッチする
re.test("aa"); // false
re.test("ab"); // true
re.test("ba"); // false
re.test("bb"); // false ... ではなく true になってしまう

21 :Name_Not_Found:2015/07/18(土) 12:51:11.84 ID:???
>>20
初心者は初心者スレに行け

22 :20:2015/07/18(土) 13:40:50.17 ID:???
ありがとうございます。自己解決しました

23 :Name_Not_Found:2015/07/18(土) 14:53:03.17 ID:???
◆質問です◆
時刻を指定して、サーバー内のcssファイルのファイル名を
javascriptでリネームをする事は可能でしょうか。

24 :Name_Not_Found:2015/07/18(土) 15:02:31.28 ID:???
>>23
サーバーサイドJavaScript(いわゆるNode.jsなど)ならあるいは可能かもしれませんが、
HTMLに書くようなJavaScriptでは無理です。

25 :Name_Not_Found:2015/07/18(土) 15:26:07.62 ID:RoOtWAqJ
オリジナルのツイートボタンを設置したいのですが、ブログサービスに個別記事タイトルの独自タグが無く、現ページの記事タイトルを取得するスクリプトがわからなくて困ってます…。

<!--ツイートする-->
<a target="_blank" href="http://twitter.com/share?&amp;text=RT @【自分のアカウント】:&amp;via=【記事タイトル】【ブログタイトル】” title="この記事をツイートする">
<img src=“【バナー画像】” alt="この記事をツイートする" style="border-top: medium none; border-right: medium none; border-bottom: medium none; border-left: medium none" height="40" width="300"></a>

↑の、【記事タイトル】の部分に、そのページのタイトルを代入するにはどうすれば良いのでしょうか?

26 :Name_Not_Found:2015/07/18(土) 15:54:36.56 ID:???
>>24
クライアントサイドの事情からすると無理ではない。
例えばサーバー側がPUTを許可していれば可能だし。

27 :Name_Not_Found:2015/07/18(土) 19:14:29.43 ID:???
>>25
タイトルタグの中身を取得表示するjs

<title>たいとーる</title>

<script>

function is_title(){
var a=document.getElementsByTagName("title");
document.write(a[0].innerHTML);
}

</script>


<p>タイトルは<script>is_title()</script>ですの</p>

後は自分で考えろ

28 :Name_Not_Found:2015/07/18(土) 21:41:31.52 ID:???
isと付いてるのに真偽値を返さないというのは変だし
document.titleでいいやん

29 :Name_Not_Found:2015/07/18(土) 22:42:47.49 ID:???
おまいさんはそうすればいいんじゃね

30 :Name_Not_Found:2015/07/19(日) 04:18:05.08 ID:???
現ベージのタイトルをタグから取得するのはちとおかしい。

31 :Name_Not_Found:2015/07/19(日) 10:16:32.78 ID:???
あとは自分で考えろ

32 :Name_Not_Found:2015/07/19(日) 12:28:35.74 ID:???
>>26
それは「JavaScriptでリネームしている」とはいえないかと
クライアントサイドからサーバサイドを操作しているわけではない

33 :Name_Not_Found:2015/07/19(日) 12:34:18.98 ID:???
>>28,30
初心者がそのコードを良いコードに修正出来るとは思えないし、>>27はミスリードしたい(粗悪なコードを量産させたい)んじゃないか
document.title なり、textContent(なければinnerText) なり、もっと良い方法があるはずだが

34 :Name_Not_Found:2015/07/19(日) 13:05:03.65 ID:???
<p>タイトルは<script>$('title').text()</script>ですの</p>

35 :Name_Not_Found:2015/07/19(日) 15:58:12.84 ID:???
どうとでもとれ

俺の中では>>25,28,30,33はレス乞食の荒らし確定で

36 :Name_Not_Found:2015/07/19(日) 19:11:12.27 ID:2ef8MM0m
>>25
<!--ツイートする-->
<a target="_blank" href="http://twitter.com/share?&amp;text=RT @【自分のアカウント】:&amp;via=【<script>is_title()</script>
】” title="この記事をツイートする">
<img src=“【バナー画像】” alt="この記事をツイートする" style="border-top: medium none; border-right: medium none; border-bottom: medium none; border-left: medium none" height="40" width="300"></a>

<script>

function is_title(){
var a=document.getElementsByTagName("title");
document.write(a[0].innerHTML);
}

</script>

37 :Name_Not_Found:2015/07/19(日) 20:44:40.19 ID:???
そもそもタイトルダグは無いかもしれないので、それに依存するのはどうなんかね。

38 :Name_Not_Found:2015/07/19(日) 21:23:08.62 ID:???
属性値に<script>なんて書いても動くわけないやんけ

39 :Name_Not_Found:2015/07/19(日) 21:51:05.74 ID:M76Zcehl
質問。
txtファイルを読み取りで開いて、HTML上で表示させるのがうまくいかないので誰か教えて欲しい。
環境はWindows7,Chrome

フォルダは
index.html
text
└aaa.txt
script
└xxx.js

xxx.jsの中身
function SetText(){
var path = "../text/aaa.txt";
var file = new File(path);
file.open("r");
document.write(file.readln());
file.close();
}
で1行分表示する感じ。これをindex.htmlで呼び出してる。

40 :Name_Not_Found:2015/07/19(日) 21:54:37.87 ID:???
XMLHttpRequestで調べてみてください

41 :39:2015/07/20(月) 00:40:29.43 ID:QM6FTcng
どうにもうまくいかないのでまた改めて質問することにする
>>40ありがとう

42 :Name_Not_Found:2015/07/20(月) 00:54:37.81 ID:???
>>41
俺が知っている限りなら、
サーバサイドならPHPでやるべき。
クライアントサイドなら仕様的にそれは出来ない。
それ以前にそれはECMA標準ではないので>>8で聞くべき。

43 :Name_Not_Found:2015/07/20(月) 00:56:18.66 ID:???
jQueryを使えばこれだけでできる。

$(function() {
  $("#id").load("file.txt");
});

間違える余地も見当たらないw
もしこれで動かないとしたら、jQueryの読み込みに失敗してるか
セキュリティ上の問題でウェブサーバーにおかないと
いけないかのどっちかなはず。

44 :Name_Not_Found:2015/07/20(月) 00:57:47.41 ID:???
一応公式サイトの例を書いておこう

http://api.jquery.com/load/

完全なサンプルもここに書いてある。

45 :Name_Not_Found:2015/07/20(月) 02:14:39.01 ID:9IMmSAtZ
記事下に最新記事を10件表示したいのですが、google feedの新着100件のうちからランダムで10件ピックアップする事は可能でしょうか…?

<script src="https://www.google.com/jsapi"></script>
<script>
google.load("feeds", "1");
function initialize() {
var feed = new google.feeds.Feed(‘URL/index.rdf');
feed.setNumEntries(100);
feed.includeHistoricalEntries();
feed.load(function(result) {
if (!result.error) {
var container = document.getElementById('feed');
for (var i = 0; i < result.feed.entries.length; i++) {
var entry = result.feed.entries[i];
        var link = document.createElement("a");
link.href = entry.link;
link.appendChild(document.createTextNode(entry.title));
        var li = document.createElement("li");
li.appendChild(link);
         container.appendChild(li);
}
}
});
}
google.setOnLoadCallback(initialize);
</script>

↑のままだと新着順ですが、このコードを「ランダムで表示」に変えることはできますか…?

46 :Name_Not_Found:2015/07/20(月) 02:35:40.98 ID:???
できるよ
やりたい事が決まってるなら後は手順をコードに直すだけだよ
ここは丸投げNGなんでもうちょっと質問を具体化してからきてくれ

47 :Name_Not_Found:2015/07/20(月) 02:42:52.61 ID:???
>>45
こんな感じかな。動かしてないからちょっとしたミスはあるかもしれんけど。

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.4/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/3.10.0/lodash.js"></script>
<script src="https://www.google.com/jsapi"></script>
<script>
google.load("feeds", "1");
google.setOnLoadCallback(function() {
  var feed = new google.feeds.Feed(‘URL/index.rdf');
  feed.setNumEntries(100);
  feed.includeHistoricalEntries();
  feed.load(function(result) {
    if (result.error) return;
    _(result.feed.entries).sample(10).each(function(entry) {
      var $link = $("a").attr('href', entry.link),text(entry.title);
      $('#feed').append($("li").append($link));
    })
  });
})
</script>

ちょっと冗長でわかりにくかったのでlodashとjQueryを使ってる。

コードは基本そのままでlodashだけ使うのであれば
var entries = _.sample(result.feed.entries, 10); ってやれば
entriesの中にランダムで10件ピックアップされる。

sampleの使い方はこっち
https://lodash.com/docs#sample

48 :Name_Not_Found:2015/07/20(月) 02:46:55.84 ID:???
>>46
> ちょっと質問を具体化してからきてくれ

「新着100件のうちからランダムで10件ピックアップする」
十分具体的だと思うが?

49 :Name_Not_Found:2015/07/20(月) 04:24:53.21 ID:???
あー言えばこういう

50 :Name_Not_Found:2015/07/20(月) 05:29:42.59 ID:???
ああ言えば ・・・ 「新着100件のうちからランダムで10件ピックアップする」
こう言う・・・「もうちょっと質問を具体化してからきてくれ」

51 :Name_Not_Found:2015/07/20(月) 05:32:56.87 ID:???
ここは丸投げNGだ。
せめて自分がどんなコードを書いて
どういうふうに動かなかったかを書きなさい。

え? 書いてあるって?
確かに書いてあるな。

>>46は何が問題だっていいたいんだろう?

52 :Name_Not_Found:2015/07/20(月) 05:34:37.68 ID:???
ヒント

このスレではちょっと難しい話になったり
コードが出ると、文句を言って逃げる人がいる。
自分がコードを書け無い(書いても汚い)からだろう。

53 :42:2015/07/20(月) 10:45:46.08 ID:???
俺は>>46に一票。

> JavaScript を自ら学ぶ人のための質問スレッドです。(>>1)
『自分で』JavaScriptを書く気がないクレクレ君は殺すべき。
回答している馬鹿は結果的にスレを悪化させるだけだということを理解しておけ。
$_狂信者は依頼スレを別に用意して、そこで布教しろ。45みたいな奴には効果はあるかもしれない。

ここは、『自分で』やる奴が躓いた時に質問するスレだろ。
知らなきゃハマるだろうなというところだけ回答すればいい。
そこから一歩進むのに十分なら、綺麗なコードも必要ない。ヒントだけでもいい。

Q45:できますか?
A46:出来ます。

回答になっている。
そもそもこれが出来ないプログラミング言語なんてない。
つまり、こいつはプログラミングをしたことがない。
こいつに『自分で』やらせるための第一歩は、まずプログラミングをさせることだ。
そのためには、具体的にどうすればいいのか手順を考えさせることだ。
だから、46で俺はいいと思う。(というか、レスをつけるのは甘いと思う。俺なら最初から無視だ。)


ちなみに、俺は>>27でもいいと思っている。

Q25:独自タグがないので出来ません。
A27:そんなものは必要ない。

色々突っ込みどころはあるのだろうが、27で前に進める。
綺麗なコードは質問者自身で書けばいい。
『自分で』進めることが重要であり、それ以上は必要ない。
お前ら枝葉末節で文句を言いすぎ。
(ただ、各指摘はキーワードを含んでおり、質問者にとっても有益な情報ではあるから、やればいいとは思うが)

54 :Name_Not_Found:2015/07/20(月) 10:49:11.16 ID:???
流れぶった切りであれなんだけど、型が無いってなんでこんな実装にしたのかな?
ifで比較なんかする時に不便でしょうがないんだけど、
○○の場合はこうやって特別な記述をすると厳密に比較できます。みたいなのばっかじゃん。

文字列と数値が合算されちゃったり、何でもかんでもtrueになったり、いちいち手間がかかる。
これだったら型を指定して、決まった動作するほうがよっぽど楽だと思うだけど。

なんか型がないメリットってあるの?

55 :Name_Not_Found:2015/07/20(月) 11:05:27.90 ID:???
型推論の利点はパパっと書くのが楽だったりある程度融通が効いたり
もちろん>>54の言うようにデメリットもあるから型付けするaltJSも盛んなのだ
個人的にはコードに手を入れる人数によって向き不向きが決まると思う

>>53
ド初心者だとまず方法論が何もわかんないって場合もあるから
最初っから蹴るんじゃなくてまずその段階へ質問を誘導するのがベストなんじゃない
あと>>46〜は例のあれだから触らんほうがいい

56 :Name_Not_Found:2015/07/20(月) 11:10:06.67 ID:???
安価ミスった
あと>>47〜は だ

ついでに補足すると>>39-42で一見XHRがスレチ扱いされてるように見えるけど
ブラウザ周りのDOM含むWebAPIは昔っからこのスレの範疇だしスレチではない
あと冗談でも荒らしの建てたスレに誘導しちゃいかんでしょ

57 :Name_Not_Found:2015/07/20(月) 11:13:23.25 ID:???
>>53
> 『自分で』JavaScriptを書く気がないクレクレ君は殺すべき。

だから>>45は自分でJavaScript書いてるだろ?

58 :Name_Not_Found:2015/07/20(月) 11:53:14.90 ID:???
>>55
ああ、言っている事は3行とも分かる。

ただ、JavaScriptが分からないのではなく、プログラミング自体が分からないのは、
掲示板で聞くのではなく、本なりブログ記事なりを最初から通しで読んだほうが効率がいい。
だから一定レベル以下は切った方が相手のためにもなる。

>>56
個人的にはXHRはスレチ扱いではない。
ただ>>39はHTML5(FileAPI)ではないし、見たところNodeでもなかった。もちろんjQueryでもない。
少なくとも俺の知っている範囲ではないので、俺は回答できない。

とはいえ、このスレではどの道ECMA周りじゃないと解答がつかない状況だ。
それは>>2の「JavaScript ライブラリ総合質問所 vol.4」に誘導しろということか?
まだ>>8のほうが現実的だと思うが。(政治的に問題があるのは認める)

てかアレ何よ?angularでもないし。
見たところ他言語(C#とか)にdocument.writeがインラインで書かれているだけのように見えるが。
coffeeてあんな感じになるのか?

59 :Name_Not_Found:2015/07/20(月) 11:59:41.86 ID:???
なんか偉そうだなw

60 :Name_Not_Found:2015/07/20(月) 12:29:34.04 ID:???
>>56
> ブラウザ周りのDOM含むWebAPIは昔っからこのスレの範疇だしスレチではない
同意。
>>42がおかしいだけでWeb制作系のJavaScript 全般(ライブラリを除く)はこのスレで扱っていいと思う。
ECMA限定にしたいなら>>2のECMAScriptスレに行け、といいたい。

61 :Name_Not_Found:2015/07/20(月) 12:32:31.31 ID:???
このスレの該当かどうかばっかり話していて
お前ら全然質問者に答えようとしないんだなw

62 :Name_Not_Found:2015/07/20(月) 12:33:22.75 ID:???
>>39はActionScriptから来た人じゃないかな

63 :Name_Not_Found:2015/07/20(月) 12:41:20.09 ID:???
>>54
自動的に対象の型にキャストするので型変換の手間なく、対応できるのがメリット
例えば、RegExp.protorype.exec は第一引数を String 型へキャストする
String 型以外も受け付けるが、内部処理的には String 型しか受け入れていない
型変換のルールを覚えて使いこなすのが重要

64 :Name_Not_Found:2015/07/20(月) 12:46:50.34 ID:???
>>39
AJAXでググれ

65 :Name_Not_Found:2015/07/20(月) 12:53:44.64 ID:???
>>63
> 自動的に対象の型にキャストするので型変換の手間なく、対応できるのがメリット
ほとんどの場合してくれない。

class Aからclass Bへはどういう変換をするべきかなんか
知らないからね。

66 :42:2015/07/20(月) 13:55:40.94 ID:???
>>54
俺の中では「ほぼ無い」という結論で、TypeScriptへの移行を検討中だ。

まずJavaScriptの仕様がよくない。「ダックタイピング」ではなく、「ストリングタイピング」になっている。
本当に「ダックタイピング」なら、2項演算子は左項優先であるべきだ。つまり、

'1' + 1 // 答えは '11'
1 + '1' //答えは 2、しかしJavaScriptでは '11'

左項優先なら、代入式だけで結果を制御できるので、変数の型を意識する必要がない。
しかしJavaScriptは「型が違う場合はストリング」なので、結局その変数は何型が意識していないとバグる。
これなら最初から型があったほうがまし。

「ストリングタイピング」なので、実は「ストリングで全て持つ」とする方法はある。
しかしこれは現実的ではない。
実際のところ、いちいちparseIntで戻すのも面倒だし、Stringが値渡しなので関数呼び出しがいちいち遅くなる。(後者はVMの実装によって回避できる)
これはMDNにも「Stringがとても便利なため、全てをStringで管理しようという誘惑に駆られますが、止めなさい」(意訳)と書いてある。
> 「文字列より」のコードに注意!
> https://developer.mozilla.org/ja/docs/Web/JavaScript/Data_structures

その他も中途半端な糞仕様は沢山あって、TypeScriptの紹介のところで分かりやすく羅列してある。
(ただしTypeScriptはそれらも全て引き継ぐが。)
http://phyzkit.net/typescript/

要するに、大型プログラミングに向いていない。しかしこれも元からの仕様だ。
せいぜい50行程度のスクリプトをさくっと書いて実行する分には、型が無い方がお手軽でいい。
つまり、JavaScriptの仕様であっている。
しかし不幸なのはこれがAjaxにより汎用化/大型化してしまったことだ。

P.S.
俺はECMAデス4も読んでいる。
だから俺宛てのレスが向こうに落とされたら、俺は向こうでレスする。(スレの選択は任せる。)

67 :42:2015/07/20(月) 14:08:22.36 ID:???
>>62
> ActionScript
file.browseForOpenはあるが、file.openはない。(クライアント用なら妥当な仕様)
つまり39はActionScriptでもない。
http://help.adobe.com/ja_JP/FlashPlatform/reference/actionscript/3/flash/filesystem/File.html

68 :Name_Not_Found:2015/07/20(月) 16:46:21.87 ID:???
>>65
「自動的」は言い方が悪かったかもね
ビルトイン関数は自動的だが、ユーザ定義関数なら明示的に型変換する必要がある
classAからclassBの変換はそもそも型変換ではないし、関与しない

69 :Name_Not_Found:2015/07/20(月) 17:44:41.87 ID:9IMmSAtZ
>>47
ありがとうございます!
loadashは初めて聞きました。早速試してみます!

70 :42:2015/07/20(月) 18:21:33.79 ID:???
>>63
お前、型付き言語の経験が無いだろ。
あるいは、大型プログラミング(10,000行以上)の経験がないだろ。

型の存在意義はバグを早期発見することだが、お前は明らかに理解できていない。
https://ja.wikipedia.org/wiki/%E5%9E%8B%E3%82%B7%E3%82%B9%E3%83%86%E3%83%A0

71 :Name_Not_Found:2015/07/20(月) 18:24:36.11 ID:???
>>69
どういたしまして。
lodashにある一連の関数は目を通しておいたほうがいいよ。
最初は何に使うんだ?ってわからないものも多いと思うが、
慣れてくると、あれを実現するものは・・・lodashにあった!って
いうことが多くなる。

72 :Name_Not_Found:2015/07/20(月) 18:30:38.68 ID:???
>>70
> 型の存在意義はバグを早期発見することだが
俺は「ミスを早期に発見」って考えているけどな。

ミスもバグになるので間違ってはいないのだが、
たまに型があってもテストは必要だとか
当たり前っちゅーかわけわからんこと言う奴がいるのでw

ミスはバグと違って単純な間違え。
だけどその単純なミスで、大きなバグを引き起こすことが有る。
引きおこさなくても、単純なミスによって引き起こされたバグの
原因を時間かけて調べるはめになる。

単純なミスをすぐに見つけられることが型の素晴らしい所。
そして型があれば可読性も高くなるし、プログラム支援機能の
サポートも受けやすくなる。

プログラムが大きくなってくると、書くよりも読んだり
複雑になってしまったものは、読む以上の"解析"が必要に
なってしまうことがあるが、型があればそれを大きく軽減してくれる。
ほんの僅かタイプを増やすだけでメンテナンス性が大きく向上する。

73 :Name_Not_Found:2015/07/20(月) 18:55:32.22 ID:???
逆に言えば大型プログラミングをすることがないJavaScriptには型は不要ということか

74 :Name_Not_Found:2015/07/20(月) 19:14:36.26 ID:???
× 大型プログラミングをすることがないJavaScript
○ 大型プログラミングをすることがない>>73

75 :Name_Not_Found:2015/07/20(月) 19:22:14.93 ID:???
訂正ありがとう

76 :Name_Not_Found:2015/07/20(月) 19:59:12.69 ID:???
Object.createって ECMAScript5からあるのですか?

77 :じゃがりきん:2015/07/20(月) 20:00:18.12 ID:4iJIeJGu
新作です!評価お願いします><


ぷるぷるダンシングキューブ
http://jsdo.it/jagarikin/kymp

78 :Name_Not_Found:2015/07/20(月) 20:01:23.72 ID:???
動的型と静的型の比較や理由付けは色々出来るが、
とりあえず現代においてはDartがなぜ動的型付にしなかったのかから持ってくると
IDEによる開発サポートのためだな。

まあJSの場合ダックタイピングを極める方がいい。
厳密にエラーが出やすいようにして完成度を高めていくのではなく、
できるだけエラーとさせずに受け入れるよう組み立てていく。

例えば
if(typeof arg !== 'number') throw 'oioi...'
ではなく
arg = +arg
とする。

79 :42:2015/07/20(月) 21:06:29.04 ID:???
>>72
内容にはおおむね同意。
ミス=タイプミス(typo)なら、100%同意でいい。

くだらないバグ(特にtypo)でも、本質的なバグでも、
デバッグで問題箇所にたどり着くまでの手間は変わらない。
だから、くだらないバグに無駄に時間をかけないためのものだ。

インテリセンスはおまけで、あれもtypoを防ぐためのもの。
可読性も上がるが、本来は変数名等から型も含めて推測できるようにしておくべき。

ちと脱線するが、この点、
> isと付いてるのに真偽値を返さないというのは変だ (>>28)
はその通りで、本来は get_title() 等にするべき。

ただ、これを10行程度のプログラムも書けない25に言ったところで通じない。
そして27もこの辺について無頓着なところをみると、雑魚なのも事実。
ただ質問の本質はそこではなく、「独自タグがないので出来ません。」なのだから、
document.getElementsByTagName('title')[0]
を教えることが回答になる。ついでに言うと、
> document.titleでいいやん (>>28)
もその通りだが、それだともう一度別のもので引っかかったときに全く同じ質問で帰ってきちまうだろ。
だから今回はエレガント以前に、document.getElementsByTagName を教えることが重要であり、
逆に言えば、それさえ入っていれば回答になってるんだよ。

ヘボ同士が教えあっていても、確実に前に進んでいけるんだからそれでいいんだよ。
それがむかつくというのなら、今回のように指摘するのもありだけど、どうせ話は通じない。
誰しも最初はヘボだったんだから、生温かい目で見守ってやればいいだけ。

80 :Name_Not_Found:2015/07/20(月) 21:25:34.11 ID:???
流石にdocument.getElementsByTagNameを知っているかどうかと、
その質問は結びつきが弱いと思う

81 :Name_Not_Found:2015/07/20(月) 21:27:29.05 ID:???
【問題】
『val = +val』
がエラーになるvalの型を答えよ

82 :Name_Not_Found:2015/07/20(月) 21:45:05.63 ID:???
答え B型

83 :Name_Not_Found:2015/07/20(月) 21:52:14.63 ID:???
Symbol型
場合によってはObject型も

84 :じゃがりきんズ:2015/07/20(月) 23:03:25.19 ID:???
>>77じゃがりきん先生
歌より才能を感じましたw
ぜひ弟子にして下さい。

85 :Name_Not_Found:2015/07/20(月) 23:58:05.32 ID:9IMmSAtZ
>>79
それもそうだけど、>>36はなんなんだ?
属性値にスクリプト書いてるけど取得したタイトルを代入するやり方がわからんのか

86 :Name_Not_Found:2015/07/21(火) 03:15:19.07 ID:???
つーかphpでやれよw

87 :Name_Not_Found:2015/07/21(火) 03:16:40.35 ID:???
>>86
phpだと読み込み早いんだっけ?

88 :Name_Not_Found:2015/07/21(火) 07:10:55.46 ID:???
Nodeの方が高速だよ
PHPなんて汚らわしい

89 :Name_Not_Found:2015/07/21(火) 07:14:27.57 ID:???
PHPerは今日も迫害されつつあります

90 :Name_Not_Found:2015/07/21(火) 18:57:28.16 ID:???
>>20
合理性はあんたの中のルール
そんな縄じゃジャップは縛れない

91 :Name_Not_Found:2015/07/21(火) 18:57:53.73 ID:???
まちがえた

92 :Name_Not_Found:2015/07/21(火) 23:37:28.24 ID:???
>>87
サーバーによるんだろうけど、体感速度ではかわらんでしょう。

SNS関連はLINEとかでスマホアプリと連動したりするので
ちゃんとサーバーサイドでソース生成する方がトラブルが起きにくいし
一般的にSNSボタンの変数部分ははphpでやるでしょう。

SEOもあるだろうし

93 :Name_Not_Found:2015/07/22(水) 08:20:59.42 ID:???
PHPからfopenで自分と同じphpファイルを作ると403エラーになりますが回避可能ですか

94 :Name_Not_Found:2015/07/22(水) 09:09:03.88 ID:???
可能です

95 :じゃがりきん:2015/07/22(水) 12:09:46.95 ID:L0/nxy5n
>>84
こーゆーのは誰かの弟子になるんじゃなくて
自分で思いついたもんを作るもんだぜ
君は何ができる?
なんか作ってjsdoitにあげればそれを評価するぜ〜

96 :じゃがりきんズ:2015/07/22(水) 18:47:49.58 ID:???
>>95
じつは歌もプログラムもまだ駆け出しのひよっこですw
これから少しずつ勉強して行きますので完成したら是非評価お願いしますm(__)m

97 :Name_Not_Found:2015/07/22(水) 18:55:03.55 ID:???
長文ですがご意見をいただければ
コード
$(element1, element2).css({
"transform": " translate(-"+ $(window).width() +"px)",
"-moz-transform": " translate(-"+ $(window).width() +"px)",
"-o-transform": " translate(-"+ $(window).width() +"px)",
"-webkit-transform": " translate(-"+ $(window).width() +"px)",
"-ms-transform": " translate(-"+ $(window).width() +"px)",
"transition-duration":"0ms"
});

console.log($(window).width());

$(element1, element2).css({
"transform": "translate(0px)",
"-moz-transform": "translate(0px)",
"-o-transform": "translate(0px)",
"-webkit-transform": "translate(0px)",
"-ms-transform": "translate(0px)",
"transition-duration":"500ms",
"transition-delay":"10ms"
});
だと思い通りの挙動をするのですが、
間の console.logを削除するとアニメーションしなくなります。
console.logの引数を削除してconsole.log()にしても同様にアニメーションしなくなります。

そのままにしておけば問題ないっちゃないのかもしれませんが、原因が気になってしまって。
検索もかけてみたのですが似た問題を見つけることができませんでしたのでお助けいただけると幸いです

98 :Name_Not_Found:2015/07/22(水) 19:39:44.41 ID:???
>>97
スタイルの変更は、再レイアウトが必要な時に一気に変更される。

たとえばこの一連のコード。
document.body.style.width="400px";
document.body.style.width="800px";
<body>のwidthを400pxにした後すぐに800pxにするコードである。
しかし、実際にレイアウト処理が行われるのは最後のwidth="800px"のときだけ。
なぜならwidth="400px"のレイアウトを見ることはないので、処理するのは無駄だから。

しかし、2つの処理の間に、bodyの幅を取得するなどの処理を入れると話は違う。
document.body.style.width="400px";
document.body.offsetWidth; // <body> の幅を取得
document.body.style.width="800px";
この場合、width="800px"に加えて、width="400px"のレイアウト処理も行う必要がある。
なぜなら、document.body.offsetWidth を取得するには、レイアウト処理をし直さないと取得できないからである。

ここまでで理解してくれたらうれしいが、まだ説明が欲しいなら追記する。

99 :Name_Not_Found:2015/07/22(水) 20:01:50.32 ID:???
>>98
ご親切にありがとうございます!
なるほど!納得がいきました!ありがとうございます!
甘えてしまう形になるのですが、$(window).width()の値を参照せずに同じ挙動をさせるとしたどの様な方法があるのでしょうか?
よろしければご教授いただけますでしょうか。

100 :Name_Not_Found:2015/07/22(水) 20:35:26.68 ID:???
>>99
いろいろ調べてみたが、$(window).width() のように、
間接的に再レイアウト(リフローというらしい)を強制するコードを置くしかないみたい。
まあ $(window).width() は恐らく無駄な処理も行ってしまうので、document.body.offsetWidth あたりが無難だろう。
露骨に書くのは格好悪いから関数にするといいかも。

function reflow(){
document.body.offsetWidth;
}

$(element1, element2).css({
"transform": " translate(-"+ $(window).width() +"px)",

});
reflow(); // リフロー
$(element1, element2).css({
"transform": "translate(0px)",

});

http://semisignal.com/?p=5298
http://stackoverflow.com/questions/9016307/force-reflow-in-css-transitions-in-bootstrap
http://tokkono.cute.coocan.jp/blog/slow/index.php/web-technology/reflow-and-repaint-in-browser/

ところでもし jQuery のバージョンが 1.8 以降なら、
-moz- とか -o- みたいなベンダープレフィックスは勝手に付加してくれるので、書く必要がないことも言っておく。

101 :Name_Not_Found:2015/07/22(水) 21:51:23.35 ID:???
>>100
ご丁寧に参考リンクまでありがとうございます!
やはり強制的に読み込ませるしかないのですね。
自分でも参考リンクを読み込んで考えてみますが、今の所関数で包むとういうのが一番良さそうなのでそれでいこうと思います!
ベンダープレフィックスも見栄え悪いな、と思っていたのでありがたい情報です!
お礼遅くなってしまい申し訳ありませんでした!

102 :Name_Not_Found:2015/07/23(木) 03:51:21.18 ID:???
BODY内からブログのhead内にCSSファイルを追加するスクリプトを書いてるんだけど、うまく動作しなくて困ってます…


window.onload=function(){
var css=document.createElement(“link”);
css.setAttribute(“rel”,”stylesheet”);
css.setAttribute(“type”,”text/css”);
css.setAttribute(“href”,”【ここにファイル】”);
document.getElementsByTagName(“head”)[0].appendChild(css);

}

改善すべき点はどこなのでしょうか?

103 :Name_Not_Found:2015/07/23(木) 08:25:08.78 ID:???
>>102
コードに問題はありません
ブログの仕様でJavaScriptが制限されているか、あるいは内部的にフレームが使われていて別のdocumentに挿入されているのか
>>3の開発者ツールで原因を切り分けてみてください
ブログの制限らしき挙動ならサポートへ問い合わせてください

104 :Name_Not_Found:2015/07/23(木) 09:05:59.20 ID:???
headに後から追加されたlink要素が絶対に読み込まれる保証ってあるの?
仕様読んでみなきゃ

105 :Name_Not_Found:2015/07/23(木) 11:26:44.27 ID:RGNe/UAY
現在の月によって表示画像が変更されるように下記記述をしました。

var now = new Date();
var month = now.getMonth() + 1;
// 数値が1桁の場合、頭に0を付けて2桁で表示
if(month < 10) { month = "0" + month; }
document.write('<img src=\"img' + month + '.jpg\" alt=\"\">');

<img src="img07.jpg" alt="">
と表示したいのですが
<img src="img07.jpg" alt>
となってしまいます。

alt\=\"\"
としてもダメでした。

=を文字列として表示させるにはどうしたらよいでしょうか。

106 :Name_Not_Found:2015/07/23(木) 11:46:56.72 ID:???
根本的に勘違いしてる。
1年ROMってから来い。

107 :Name_Not_Found:2015/07/23(木) 12:37:39.37 ID:???
エスケープいらないんちゃう
altが属性名だけなのは値が入ってないから

108 :Name_Not_Found:2015/07/23(木) 16:46:16.94 ID:RGNe/UAY
>>106
すみません。もう少しだけ質問させてください。

>>107
ありがとうございます。
値を入れたらきちんと表示されました。

画像に適切なaltがない場合は、htmlの文法的にはalt自体を消去ではなくaltの中を空にします。
ですので、JavaScriptで吐き出されるhtmlが
<img src="img07.jpg"> または <img src="img07.jpg" alt>
になることがもやもやしてしまいます。

<img src="img07.jpg" alt="">
と吐き出す方法はないのでしょうか。

もしくは、そもそもJavaScriptで吐き出すhtmlにきちんとした文法は不要なのでしょうか。

109 :Name_Not_Found:2015/07/23(木) 22:30:32.39 ID:???
細かいことを気にしすぎ
ルールに使われてどうする

110 :Name_Not_Found:2015/07/23(木) 22:37:13.93 ID:???
世の中ルールを守らないとデメリットが大きいんだよw

111 :Name_Not_Found:2015/07/23(木) 23:28:07.33 ID:???
属性値を省略したものは、="" を指定しているものと同じ。
HTML に直接書いた場合でも、ブラウザは<img alt>と<img alt="">を区別してないよ

112 :Name_Not_Found:2015/07/24(金) 01:08:21.20 ID:???
>>110
その莫大なデメリットとはなんぞよ
いつまでも捕らわれてJSやHTMLの他の部分を勉強するよりも重要なことなのか?

113 :Name_Not_Found:2015/07/24(金) 04:43:07.40 ID:???
>>111
W3Cの文法チェックではエラーになるので同じではないと思います

ブラウザはどちらでも同じ挙動をするけどそれを言ったら正式な文法は不要になってしまいます

114 :Name_Not_Found:2015/07/24(金) 07:30:45.99 ID:???
>>113
すまん、確かにHTML 4.01だとエラーになるな。
でも、JSを使わずHTMLに直接かいても<img alt>も<img alt="">も、同じく<img alt>になるよ。確認した?

どうしてもいやなら、HTML5だとエラーにならないから、せっかくだから移行したらどう?

115 :Name_Not_Found:2015/07/24(金) 07:42:50.66 ID:???
そんなに悩むくらいならその画像を置かなければいい。

116 :Name_Not_Found:2015/07/24(金) 07:43:07.82 ID:???
つーかそんなに文法気にするくせに、非推奨のdocument.write()を使うのはどうよ

117 :Name_Not_Found:2015/07/24(金) 08:49:46.50 ID:???
document.writeはいつも非推奨なわけではない

118 :Name_Not_Found:2015/07/24(金) 09:15:59.08 ID:???
もうコーダー辞めろ

119 :Name_Not_Found:2015/07/24(金) 13:11:36.75 ID:???
お前等いつも上から目線で偉そうなのにこんなのも解決できないのか…

120 :Name_Not_Found:2015/07/24(金) 13:26:20.98 ID:???
>>105,108
> JavaScriptで吐き出されるhtmlが
何のメソッドで出力させているのでしょう?
innerHTML, outerHTML なら実装によって多少変化があるプロパティなので全ての実装で完璧な同じソースを出力するのに向きません
同じソースが欲しい場合は自前で関数を書くぐらいでしょうか

また、JavaScriptはソースで実体を管理しているわけではなく、DOMで管理しています
もし、HTML出力して改変することを目的とするなら event がはがれますし、実用的ではありません
通常はDOMのまま管理することを目指します
最終目標が見えてこないので、もう少し、目的を明らかにした方がいいと思います

121 :Name_Not_Found:2015/07/24(金) 18:49:35.14 ID:???
Canvasに描画したらいい

122 :Name_Not_Found:2015/07/24(金) 20:05:46.12 ID:XRf7wAXC
>>114
文法エラーになるからどうしてもalt=""としたいのではなく、気分的に<img>、<img alt>となるのがもやもやする。
ということが質問したそもそもの経緯です。
<img alt"">で吐き出されたらすっきりするのにな。方法は無いのかな。というレベルですので方法が無ければ<img alt>としようと思います。
アドバイスありがとうございました。

>>120
サンプルを見てコピペする位の知識しかないど素人でございますので、申し訳ありませんがほとんど何を言っているのか分からない状況です。
わざわざご回答いただきましてありがとうございました。

123 :Name_Not_Found:2015/07/24(金) 20:27:03.44 ID:???
altの属性値は省略出来ないと決められている。
あえて省略した場合汎用的なルールに基づいて、
<img alt>は<img alt=alt>とみなされる。
<img alt="">とは違う。

124 :Name_Not_Found:2015/07/24(金) 23:25:06.87 ID:???
>>123
補足すると、それはSGMLであるHTML 4.01の時の話だね。
HTML5ではこれまた違う。

125 :Name_Not_Found:2015/07/24(金) 23:39:18.05 ID:???
HTML5でも省略できない

126 :Name_Not_Found:2015/07/24(金) 23:44:43.85 ID:???
省略できるお
騙されたと思ってvalidationしてみてね
仕様書も読んでね

127 :Name_Not_Found:2015/07/25(土) 00:05:05.24 ID:???
やっぱり省略できないようだね。

Error: An img element must have an alt attribute, except under certain conditions. For details, consult guidance on providing text alternatives for images.
From line 7, column 4; to line 7, column 20
<body>?<p><img src="a.gif"></p>?<

128 :Name_Not_Found:2015/07/25(土) 00:06:37.49 ID:???
でしょ? だからそう言ってるじゃんw

129 :Name_Not_Found:2015/07/25(土) 00:09:12.27 ID:???
>>127
すまん、試したらバリデーターによって意見が分かれることが分かった

マル
https://html5.validator.nu/
https://validator.w3.org/

バツ
http://www.onlinewebcheck.com/
http://www.htmllint.net/html-lint/

130 :Name_Not_Found:2015/07/25(土) 00:12:26.48 ID:???
しかし、仕様書を見れば、属性値を省略した場合の値は""になると明言してある。
http://www.w3.org/TR/html5/syntax.html#attributes-0
> Empty attribute syntax
> Just the attribute name. The value is implicitly the empty string.

以上より、<img src="img07.jpg" alt> は <img src="img07.jpg" alt=""> と同値であると主張する。
反論があればどうぞ。

131 :Name_Not_Found:2015/07/25(土) 00:17:44.35 ID:???
https://html5.validator.nu/
https://validator.w3.org/ はalt省略できないんだね。

この二つのが有名だから、やはり省略できないと
考えたほうが良さそう。

132 :Name_Not_Found:2015/07/25(土) 00:18:55.87 ID:???
>>130
HTML5は不正なHTMLでも解釈を
同じにするためのルールがあるからね。

まあ不正なHTMLの解釈の話は
altが省略できる話とは無関係ということ。

133 :Name_Not_Found:2015/07/25(土) 00:19:53.25 ID:???
>>131
逆だ逆w

<img src="img07.jpg" alt> 可
https://html5.validator.nu/
https://validator.w3.org/

<img src="img07.jpg" alt> 不可
http://www.onlinewebcheck.com/
http://www.htmllint.net/html-lint/

134 :Name_Not_Found:2015/07/25(土) 00:23:58.10 ID:???
>>129
上から、以下のようにエラー表示されることを確認した。

https://html5.validator.nu/
Error: An img element must have an alt attribute, except under certain conditions. For details, consult guidance on providing text alternatives for images.
From line 7, column 4; to line 7, column 20
<body>?<p><img src="a.gif"></p>?<


https://validator.w3.org/
Error: An img element must have an alt attribute, except under certain conditions. For details, consult guidance on providing text alternatives for images.
From line 7, column 4; to line 7, column 20
<body>?<p><img src="a.gif"></p>?<


http://www.onlinewebcheck.com/
13] In most cases HTML5 requires that the "alt" attribute be used with the "img" element.
The "alt" attribute is critical for accessibility and useful for SEO. It may only be omitted
when no alternative text is available and none can be made available.
NOTE: Alternate text should not change the meaning of the page when it is
used to replace the image, and it should not be supplemental text, like a caption,
title, or legend (because it's replacement text; consider the "title" attribute for supplemental text).
It should also not repeat information that is provided in the prose next to the image.
<p><img src="a.gif"></p>


http://www.htmllint.net/html-lint/
<IMG> には ALT 属性が必要です。

135 :Name_Not_Found:2015/07/25(土) 00:25:01.62 ID:???
なんだw やっぱり全滅じゃんw

altは省略できませんと。

136 :Name_Not_Found:2015/07/25(土) 00:25:32.12 ID:???
>>134
議論がずれてると思ったらそういうことか…。
<img src="a.gif"> が可能かどうかではなくて、
<img src="a.gif" alt> が可能かどうかの議論をしている。
もう一度調べてくれ。

137 :Name_Not_Found:2015/07/25(土) 00:41:13.08 ID:???
https://html5.validator.nu/
The document is valid HTML5 + ARIA + SVG 1.1 + MathML 2.0 (subject to the utter previewness of this service).
https://validator.w3.org/
Document checking completed.
http://www.onlinewebcheck.com/
The "alt" attribute for this "img" element has a missing value. The expected value is one of the following: an alphanumeric string, a null (empty) string, or a string.
http://www.htmllint.net/html-lint/
<IMG> の ALT 属性には属性値が必要です。

上二つがvalid、下二つがinvalid。
>>131論法により<img src="a.gif" alt>はvalid。
ついでに<img src="a.gif">は>>134によりもちろんinvalid。
ハイこの話題終わり。
HTMLはスレチだからこれ以上は余所でやれ。

138 :Name_Not_Found:2015/07/25(土) 00:44:25.40 ID:???
いい記事発見

優秀なJavaScriptの開発者になるための5か条
http://postd.cc/how-to-become-a-great-javascript-developer/

時間のない人のために、簡潔にまとめたバージョン

* 本を読むことから始めましょう。凝縮された情報を得ることができます。
* jQuery、underscore、Backboneなどの基本的なライブラリを学びましょう。それらのソースコードを読むことも忘れずに。
* 訓練を積み、例えば継承のような一般的なJavaScriptの概念を、自分の言葉で説明できるようにしましょう。これらのテーマについて、講義や議論をしましょう。
* 新しいバージョンの標準規格をひと通り読みましょう。そしてその最新版を言語に使い始めましょう。
* Webリソースは、まとめてフォローしましょう。あなたが頻繁に読んでいるダイジェストやブログを週に1回程度、あるいはカンファレンスのビデオや教育用ビデオを見ましょう。

139 :Name_Not_Found:2015/07/25(土) 05:26:02.14 ID:???
>>137
>>ついでに<img src="a.gif">は>>134によりもちろんinvalid。
alt属性は画像が自動生成等で付けようがない場合は付けなくて良いと仕様にある。

140 :120:2015/07/25(土) 07:28:55.95 ID:HBYECBZ1
>>122
もう一度聞きますが、「JavaScript が出力するHTML」とはどんな機能で出力させているのでしょう?
JavaScript が出力する HTML は構築済みの DOM からそれらしき HTML 文字列を出力しているだけなので HTML の文法規則にとらわれる必要はないと思うのですが…
JavaScript で出力した HTML を innerHTML で代入するなら気にする必要がありますが、それは運用次第で回避可能だと思います

---
一応聞きますが、あなたが書いているのは HTML5 (HTML Living Standard) で間違いないでしょうか
alt 属性値を省略可能(省略可能なのは alt 属性値だけで alt 属性は省略不可)なのは HTML5 だけです

また、それは本当に alt 属性値を省略可能な状況でしょうか
HTML5 では alt 属性値を省略可能な仕様にしましたが、それは「文脈上、省略可能な場合がある」だけで機械的にそれを判断することは出来ません
<!DOCTYPE html><title>test</title><img src="img07.jpg" alt=""> は https://validator.w3.org/ でエラーを出力しませんが、alt="" が本当に正しいかどうかは人間の目で見て判断するしかありません
>>105を見る限りでは <img src="img07.jpg" alt="7月"> と書くべきと思えますが、どうでしょう?
HTML5 で alt 属性値を省略可能なケースは仕様書に細かく記載されていますので一読してみてください
http://momdo.github.io/html5/embedded-content-0.html#alt

141 :Name_Not_Found:2015/07/25(土) 09:50:32.17 ID:???
すんごい亀レスだけどw

>>55
>>66

型が無いことについて質問したものだけど、
altJS
TypeScript
なるものがあるんだね。勉強になった。
ちょっと調べてみまさー

142 :Name_Not_Found:2015/07/25(土) 17:38:52.61 ID:???
7月に関する画像だからといってaltが"7月"であるべきとは限らない。
それがもし、7月をイメージとしたカラーの罫線画像なら空文字にすべきだし、
七夕の画像なら"7月といえば七夕ですよね"のようにしないといけない。
それとaltは基本的に単語ではなく、上下のコンテキストと繋がる文章であるべきだ。
例えば『<img src=m07.jpg alt="7月">といえば何を思い浮かべますか?』の用な感じでのみ単語がふさわしい。

143 :Name_Not_Found:2015/07/25(土) 17:48:57.86 ID:???
>>140
一定の条件下で値だけではなく属性ごと省略可ですよ

144 :120:2015/07/25(土) 19:19:55.60 ID:e+3N4NF0
>>142
alt="7月" と書くべきは言い過ぎでしたか

>>143
確かにfigure要素内のimg要素なら条件付きで省略できますね
http://momdo.github.io/html5/embedded-content-0.html#when-a-text-alternative-is-not-available-at-the-time-of-publication

145 :Name_Not_Found:2015/07/25(土) 19:31:49.44 ID:???
>>143
条件付きの時点でダメだなw

146 :Name_Not_Found:2015/07/25(土) 20:36:42.50 ID:???
figure要素内でなくともtitleがあればいいし、もっと言えば私的な範囲であれば無くても良いるーるもある
まとめるとこれ
>>If the src attribute is set and the alt attribute is not
>>The image might be a key part of the content, and there is no textual equivalent of the image available.
https://html.spec.whatwg.org/#the-img-element:attr-img-src-15

147 :Name_Not_Found:2015/07/26(日) 08:34:42.43 ID:???
http://peace.2ch.net/test/read.cgi/hp/1427008867/16 より引用。

> 16 Name_Not_Found sage 2015/07/25(土) 20:42:54.27 ID:???
> クッキーって何メガバイトもデータ保存出来ますか?
実装依存ですが、RFC2965 -> 5.3. に基準が明記されています。
http://pentan.info/doc/rfc/j2965.html

148 :Name_Not_Found:2015/07/26(日) 21:55:21.12 ID:???
仮に保存できてもCookieはサーバに常に送信されるということを忘れてはいけない。
多くのWebサーバはDoS攻撃対策のためにデフォルトで、
クライアントからのリクエストサイズをKBオーダーで制限するようになっている。

149 :Name_Not_Found:2015/07/27(月) 01:07:57.65 ID:???
>>147 (To: 質問者)
サイズ制限を気にするなら Web Storage を使うのが無難な選択かと

>>148
hashdos 攻撃の事かな
Apache 2.2 なら LimitRequestFieldSize のデフォルト値は 8190 bytes だな
http://blog.tokumaru.org/2012/01/cookie-hashdos-attack-defense.html
http://httpd.apache.org/docs/2.2/mod/core.html#limitrequestfieldsize

150 :Name_Not_Found:2015/07/28(火) 23:59:36.74 ID:???
スレ違いだから、こっちへ行け
http://hayabusa6.2ch.net/test/read.cgi/senmon/1437993191/l50

151 :Name_Not_Found:2015/07/29(水) 00:18:39.01 ID:Kqlg9h30
質問です。スマホで

<div.a>
<div.a>
<div.a>
<div.b>

のようにボックスが並んでいて、<div.b>をクリックすると
<div.a>の高さがtransitionありで変わります

このtransition中に、<div.b>の上辺が常にウィンドウの上辺にフィットしているようにしたくて
setIntervalでscrollTopの値を書き換え続けてみたのですが、ガクガクとしてしまいます
特にAndroidの標準ブラウザで

書いたコードはこれです
http://output.jsbin.com/zelibegexu

なにかよい方法はありませんでしょうか
よろしくお願いします

152 :Name_Not_Found:2015/07/29(水) 01:20:19.47 ID:???
AFを使ってもいいが慣れてなく下手な方程式書くと同じこと
CSSにまかせなさい

153 :151:2015/07/29(水) 13:23:24.96 ID:???
>>152
CSSでできるものですかね?
トランジションの間だけbodyとhtmlのoverflowをいじっても
目的は達せられなかったのですが…

154 :151:2015/07/29(水) 14:54:33.27 ID:Kqlg9h30
もうちょっと良く考えてみました

<div.b>をposition:fixedにして
<div.b>と同じ高さの身代わりボックスを置いて
トランジションが終わったら元に戻す

とすることで、だいたいなんとかなりました
もっと賢い方法がありましたらお教え下さい
よろしくお願いします

155 :Name_Not_Found:2015/07/29(水) 18:13:53.44 ID:3fEaXQZp
ブログの記事下に設置してる色々なパーツを一括管理できるようにしたんだけど、

<div class=“”>
<script type="text/javascript" src=“【ブログの記事下セット】”></script>
</div>

こういう感じでブログの記事下に設置するパーツを別のファイルで管理して、jsを使って記事内に呼び出すことってできるの?

156 :Name_Not_Found:2015/07/29(水) 21:15:57.01 ID:???
>>155
はい

157 :Name_Not_Found:2015/07/30(木) 02:57:11.37 ID:???
>>156
やり方のヒントだけでも教えてくれないか…

158 :Name_Not_Found:2015/07/30(木) 04:02:41.07 ID:???
WebComponentsを使って、どうぞ

159 :Name_Not_Found:2015/07/30(木) 07:35:11.83 ID:???
>>158
いいえ

160 :Name_Not_Found:2015/07/30(木) 09:18:16.81 ID:???
じゃあ代わりにRiot.jsで

161 :Name_Not_Found:2015/07/30(木) 10:08:38.53 ID:???
>>155
DOM API で十分
別ファイルをJSONで管理するなり、HTMLで管理するなり、様々な方法が考えられるが、質問に具体性がないので自分で調べて
自分でコードを作る技術がないなら Polymer 等のライブラリを使えばいいんじゃない
ライブラリを使うならライブラリスレで質問すべきだけどね

162 :watakano:2015/07/30(木) 10:13:45.74 ID:E79ugbr4
【話題の動画】ホームレス男性のピアノ演奏が素晴らしくて感動
ダウンロード&関連動画>>


【日本語記事】http://headlines.yahoo.co.jp/hl?a=20150705-00000020-it_nlab-sci

163 :Name_Not_Found:2015/07/30(木) 10:49:29.56 ID:???
普通にHTML ImportsやらWeb Componentsを使う場面だと思うが。
むしろここで使わずにどこで使うんだという感じ。

164 :Name_Not_Found:2015/07/30(木) 15:13:34.53 ID:???
忍者レコメンドとかそんなかんじだよね

165 :Name_Not_Found:2015/07/30(木) 18:34:45.31 ID:???
>>163
WEBコンポーネントってもうブラウザ対応してるの?
実装可能になるのは将来的に…って奴じゃなかったっけ?

166 :Name_Not_Found:2015/07/30(木) 18:51:18.04 ID:???
Polymerであればpolyfillも入ってるから使えるはず

167 :Name_Not_Found:2015/07/30(木) 20:11:18.09 ID:8RBmXJgU
HTML Importsって初めて知ったんだけど、ブログサービスだと使えないよね。
サーバーに簡単なテストファイルうpして試したらうまく読み込めたけど、livedoorブログだとhtmlファイルが呼び出せない。

ドメインによって使える・使えないがあるのかな

168 :Name_Not_Found:2015/07/30(木) 20:46:28.57 ID:???
いっつも思うんだけど、こういう静的差込はPHPでやったほうがいいんじゃないの?

169 :Name_Not_Found:2015/07/30(木) 23:21:23.22 ID:???
JSもCSSもインポート出来るんだから、HTMLだって同じようにできて悪いはずがない

170 :Name_Not_Found:2015/07/31(金) 01:03:05.92 ID:???
言語仕様としてはそれでいい。
ただ、静的な場合はクライアントサイドでやる意味無いよね。結果待ちで遅れるだけだし。
キャッシュは効くけど、よほど大きくない限りベタ書きの方が速い。

171 :Name_Not_Found:2015/07/31(金) 04:08:03.32 ID:???
ベタ書きでもいいんだけど変更があった時に融通効かないじゃん。
外部ファイルならメンテナンス性が高いし

172 :Name_Not_Found:2015/07/31(金) 07:04:47.17 ID:???
ベタ書きは問題を増やすだけ。
HTTP2のサーバープッシュで送ればいい。

173 :Name_Not_Found:2015/07/31(金) 12:41:44.74 ID:???
外部ファイルのメンテナンス性の高さは認めるけど、パフォーマンスを考えると include はサーバサイド一択だなあ
HTTPリクエスト数は可能な限り減らすのはパフォーマンス向上の常套手段

174 :Name_Not_Found:2015/07/31(金) 19:47:24.44 ID:???
それは本来HTTP2のServerPushのようなレイヤで解決すべきこと
そもそもテンプレートならキャッシュも効かせやすいし問題ない

175 :Name_Not_Found:2015/07/31(金) 22:57:31.42 ID:???
個人的にはたかがブログなのに初回読み込みに延々と待たされ続けてようやく本文が表示されるストレスは嫌だなあ
とんでもなく読み込みが遅いブログとか今では珍しくないよな

176 :Name_Not_Found:2015/07/31(金) 23:11:02.43 ID:???
お前らが頭よすぎて何言ってるかさっぱりわかんねぇ…
html importってまだ挙動が不安定なのかな。
うまく読み込んでくれない

177 :Name_Not_Found:2015/08/01(土) 01:55:21.46 ID:???
クライアントサイトでincludeなんてできるの?
jQueryでいうload();やajax();のことか?

178 :Name_Not_Found:2015/08/01(土) 03:41:01.54 ID:???
グーグルがJSを理解してくれるようになったのが有難いなあ
昔はそれがネックで、JSでモジュール化ってやりづらかった思い出

179 :Name_Not_Found:2015/08/01(土) 04:18:01.78 ID:???
>>175
数百MBくらいのテンプレート想定してるの?

180 :Name_Not_Found:2015/08/01(土) 08:21:21.62 ID:???
>>179
自分ではそんな事しないから容量は知らないけど、記事本文より先に両側のサイドメニュー読み込みが始まってなかなか記事が表示されないブログは珍しくないよ

181 :Name_Not_Found:2015/08/01(土) 13:35:10.52 ID:???
javascriptが仮にクロスドメインでの通信を許可した場合、
具体的にどのようなプログラムで悪用されるの?

182 :Name_Not_Found:2015/08/01(土) 14:00:58.77 ID:???
訪問者のFacebookにアクセスして個人情報が抜き放題

183 :Name_Not_Found:2015/08/01(土) 15:39:27.52 ID:GfoYZqLQ
日付型に関する質問なんだけど、
ブラウザから入力されてyyyyMM(201506)みたいに
区切られてない日付を簡単にDateで扱える方法ある?

頭から4桁でsliceして、/で区切って連結してDateに突っ込んでるんだけど
もっと上手いやり方あるかな?
環境的にはjQuery, underscore.js使ってるから、どっちか使ってできないかな。

184 :Name_Not_Found:2015/08/01(土) 16:04:13.29 ID:???
そのやり方ってIEだとダメだったような

185 :Name_Not_Found:2015/08/01(土) 16:07:08.62 ID:???
moment.jsでも使えばいいんじゃない?

186 :Name_Not_Found:2015/08/01(土) 16:42:37.35 ID:???
俺も日付用のライブラリにはmoment.jsを使ってる。
あとunderscoreじゃなくてlodash。
DOMを使うならばjQuery
ここらへんはライブラリの鉄板だよね。

大規模になってきてフレームワークを使うようになったら
jQueryじゃなくて、そのフレームワーク標準の
やり方になるけど、それでもlodashとmomentは使う。

187 :Name_Not_Found:2015/08/01(土) 16:45:31.83 ID:???
初心者なんだけど、またはを意味する「||」はどうやって出すのですか?

188 :Name_Not_Found:2015/08/01(土) 17:36:37.71 ID:???
読み込みに時間がかかるのは1つの量よりも何個あるか。

189 :Name_Not_Found:2015/08/01(土) 22:25:55.10 ID:???
>>183
new Date() の第一引数、第二引数に数値を渡せば良いのでは
http://www2u.biglobe.ne.jp/~oz-07ams/2002/ecma262r3/15-9_Date_Objects.html#section-15.9.3.1

new Date(2015, 0); // Thu Jan 01 2015 00:00:00 GMT+0900 (東京 (標準時))

190 :Name_Not_Found:2015/08/02(日) 00:27:53.40 ID:???
>>189
可読性悪いから無理w

191 :Name_Not_Found:2015/08/02(日) 00:59:56.40 ID:???
この板の他スレどこ行った?w

192 :Name_Not_Found:2015/08/02(日) 01:38:35.21 ID:Z/msMPj0
>>189
第二引数で月だったのか
調査不足だったthx

他のライブラリが色々あって使えない状況だから、
一旦スライスしてぶっこむよ。

193 :Name_Not_Found:2015/08/02(日) 01:54:18.88 ID:???
>>192
ライブラリが使えないなら、
自分でそのライブラリを書けばいいだけの話。

ソースコードは公開されてるんだから
できないわけがないだろう。

194 :Name_Not_Found:2015/08/02(日) 02:08:13.85 ID:???
解決したのに何を言ってるんだ

195 :Name_Not_Found:2015/08/02(日) 02:24:38.64 ID:???
解決すればいいというものではない
だからお前は駄目なのだ

196 :Name_Not_Found:2015/08/02(日) 08:07:12.76 ID:???
ぷw

197 :Name_Not_Found:2015/08/02(日) 09:25:12.51 ID:???
var hoge =[0,,,,,,1000];
って配列があって、これをランダムな順番で並べ替えたいんですけど良い方法ありまっか?

198 :Name_Not_Found:2015/08/02(日) 10:06:20.56 ID:???
>>197
"Fisher–Yates shuffle"

199 :Name_Not_Found:2015/08/02(日) 10:24:53.78 ID:???
>>198
なんだこんなシステムあるのかな?と思ってググってみたらなんじゃこりゃ
すっげー超ありがとう

200 :Name_Not_Found:2015/08/02(日) 11:50:34.76 ID:???
>>187
[Shift] + [\] キー

201 :Name_Not_Found:2015/08/02(日) 12:20:34.74 ID:???
>>200
dd

202 :Name_Not_Found:2015/08/02(日) 15:30:43.89 ID:???
>>197
https://lodash.com/docs#shuffle

_.shuffle(collection)

Creates an array of shuffled values, using a version of the Fisher-Yates shuffle.

Arguments
collection (Array|Object|string): The collection to shuffle.
Returns
(Array): Returns the new shuffled array.

Example
_.shuffle([1, 2, 3, 4]);
// → [4, 1, 3, 2]

203 :Name_Not_Found:2015/08/02(日) 15:36:51.09 ID:???
>>199
> Fisher-Yates shuffle.

俺もlodash見ていて知ったよ。
最初ドキュメントに書いてあったこれ、
なんだろう?って思った。

lodashは単にライブラリとしてだけではなく
その実装が見れるわけだから、例え使えないプロジェクトでも参考にできるし、
一部分だけコードをコピペればいいので(MITライセンスなので可能)
知っておくといいよ。

なんかいいやり方ないかな?とかこういう時に役に立つ。

204 :Name_Not_Found:2015/08/02(日) 15:37:07.52 ID:???
ありがとうございます。参考になります。

205 :Name_Not_Found:2015/08/02(日) 15:58:31.05 ID:???
そんな単純なアルゴリズム使うのにわざわざ(ry

206 :Name_Not_Found:2015/08/02(日) 17:15:11.36 ID:???
自分でアルゴリズムを探せば、 "Fisher–Yates shuffle" はすぐに見つかる程には有名だけどね
アルゴリズムを理解する事を放棄するならコピペもいいけど、このスレの趣旨には反するね
しっかりと理解して自分の手でコードを書くのが望ましい

207 :Name_Not_Found:2015/08/02(日) 18:03:50.54 ID:???
別の乱数列に基づいて並び替えるのが一番スマートだと思いまする

var shuffle = ary => {
var len = ary.length
do { var ra = [...new Set(crypto.getRandomValues(new Uint32Array(len)))] } while ( b.length !== len )
return [...ra].sort().map( (v, i) => ary[ra.indexOf(v)] )
}

208 :Name_Not_Found:2015/08/02(日) 18:07:33.58 ID:???
おっと失礼
b.length → ra.length

209 :Name_Not_Found:2015/08/02(日) 18:59:39.13 ID:???
言うほどスマートか?
それにそのコード、無限ループに近い現象が起こる可能性があるのであんまり気持ちいいものではないと思う

210 :Name_Not_Found:2015/08/02(日) 20:00:16.12 ID:???
俺もゴミだと思います。
てかこの手の「浸っているコード」多すぎないか?このスレ。
普通に書けばいいだけなのに。

211 :Name_Not_Found:2015/08/02(日) 20:53:57.54 ID:???
何が「普通」かわからんのだろう?

経験がない。もしくは独学や座学(大学の授業とか)
ばかりで、現実的な開発の勉強をしてないか。

こういうのは、普通に使われているものを
知って、そのコードを見ればいいんだよ。

普通に使われているものを見るのは今の時代簡単。
githubでスターが多いプロジェクトを見ればいい。

そこでどんな技術、どんな設計、どんなライブラリが
使われているかを見れば、何が普通かわかるようになる。

212 :Name_Not_Found:2015/08/02(日) 20:55:54.23 ID:???
>>210
> てかこの手の「浸っているコード」多すぎないか?このスレ。

俺こんなの知ってるんだぜ、すげーだろ感がでてるよなw

213 :Name_Not_Found:2015/08/02(日) 21:01:53.35 ID:???
ちなみにここやRubyスレとかでも思うのだが、
ローレベルコードを絶対に書かないという宗教みたいなのがあるのか?

214 :Name_Not_Found:2015/08/02(日) 21:05:39.40 ID:???
ローレベルコードってなんだ?

少なくとも俺が言ってるのは、
他人(プロ)のコードを盗め(参考にしろ)って話。

少し考えて、良いコードを参考にして、それを読んで勉強しろ。
全部自分で考えてたら、いくら時間があっても足りない。
先人の知恵を拝借しよう。数学だって科学だってそうやって発展してきた。

215 :Name_Not_Found:2015/08/02(日) 21:24:37.63 ID:???
ローレベルコード: for文を使ってしこしこ
ミドルレベルコード: map()を使う

ググッたら出てきたこれがローレベルコード
> var n = arr.length;
> for(var i = n - 1; i > 0; i--) {
> var j = Math.floor(Math.random() * (i + 1));
> var tmp = arr[i];
> arr[i] = arr[j];
> arr[j] = tmp;
> }
> http://pandanoir.seesaa.net/article/341955064.html

207もそうだが、無理にミドルレベルでやろうとするから余計におかしくなる。
トンデモコードが出てくるのはこのケースが多い。

216 :Name_Not_Found:2015/08/02(日) 22:00:42.89 ID:???
> ローレベルコード: for文を使ってしこしこ
> ミドルレベルコード: map()を使う

それ、誰が定義した言葉?

217 :Name_Not_Found:2015/08/02(日) 22:16:21.51 ID:???
やっぱここ駄目だわ

218 :Name_Not_Found:2015/08/02(日) 22:17:11.05 ID:???
だれでも他に行き場所はない。
俺が作ったこのスレで過ごすが良いw

219 :Name_Not_Found:2015/08/02(日) 22:17:59.55 ID:???
(俺が望んだ通りにならないのだから)やっぱり世界はダメだわ。一回破壊しないと。

220 :210,213,215,217:2015/08/02(日) 22:37:54.36 ID:???
避難した。続けるのならあちらで。
http://peace.2ch.net/test/read.cgi/tech/1325448978/788

221 : ◆wvUfy0g2Fc :2015/08/02(日) 22:40:14.79 ID:???
>>220
了解した。

222 :Name_Not_Found:2015/08/02(日) 22:53:00.41 ID:???
>>210
自分に酔っている発言はちらほら見かけるね
その人が連投する影響でスレ全体が駄目な人と烙印を押される傾向にあるのは仕方ないのかもしれないけど、悲しい
id強制表示な板への移行はローカルルール制限で不可能だし、運営はvol.115以降はこのスレを追ってないし、いろいろと限界に近づいているのだと思う

223 :Name_Not_Found:2015/08/02(日) 23:12:25.82 ID:???
>>222
Web制作板の状況はわからないが、他板から来た身にとっては、なぜIDが無いのかかなり疑問。
提案等するなら援護射撃はするよ。

ただまあ、俺の興味はほぼ向こうのスレでやるべき案件ではあるから、
個人的にマメに避難することにするけど。

224 :Name_Not_Found:2015/08/03(月) 00:22:21.65 ID:???
>>201
ネタかと思ったらマジな質問だったのかよ!

225 :Name_Not_Found:2015/08/03(月) 04:27:15.83 ID:???
>>209
計算してみたが本当に最悪のケース(len==16384)でも一度ループする確率は3%程なので絶対に心配ない。
これを心配するなら宇宙線や熱でメモリ化けする心配をした方がよっぽど有意義。

でも話の本質がズレてると思う。
ここまで来ると最も大きな心配点はMath.randomの実装はきちんとされているのか?になるはず。
(きちんとされていなくてもいい→多少偏っていいのであればもっと簡略で効率的な実装があるので、とりあえずMath.randomに頼るのは変)
crypto.getRandomValuesについても同じくそう。

本当になぜMath.randomという根幹に当たるものを自前で実装したりもしていないのに、アルゴリズムの優秀さを誇れるのか謎で仕方がない。

226 :Name_Not_Found:2015/08/03(月) 09:06:18.85 ID:???
>>225
話の本質がずれてるのはお前だって。

Math.randomの実装を良くしようが
お前のコードには一切修正はいらないだろ。

今の話はお前の書いたコードがクソだって話をしてる。
アルゴリズムもクソだし、その実装もクソ。
レイヤーが違う問題を一緒に解決しようとすんな。

お前、自分が批判されるのがよっぽど嫌いなんだな。

227 :Name_Not_Found:2015/08/03(月) 17:35:12.35 ID:???
>>226
俺は>>209ではないし、俺は両方(>>209及び(>>215のようなもの及び_のコード))と話の展開そのものを批判している。
たった1レスの本質も見抜けないで頓珍漢な吹っ掛けをしてくるような奴にズレてるなどと言われたくはない。

228 :Name_Not_Found:2015/08/03(月) 17:48:36.94 ID:???
皆さんこれでどうしてライブラリの話題を禁止しないといけないか分かりましたね?
そして最も本質なのは質問スレで質問者を無視した議論をするなということ

229 :Name_Not_Found:2015/08/03(月) 18:36:13.92 ID:???
速度比較作ったのでどうぞ。
http://jsperf.com/fisher-yates-shuffle-vs-207-shuffle

手元のFF39だと>>207が100倍遅い

230 :Name_Not_Found:2015/08/03(月) 18:48:00.45 ID:???
シャッフルはそんなに何回もするものじゃないだろ!!


……とか言ったら俺も批判されるのかな。。。

231 :Name_Not_Found:2015/08/03(月) 18:51:56.38 ID:???
ろーダッシュ厨、スマート厨、スピード厨は出て行ってください
ここは質問スレです

232 :Name_Not_Found:2015/08/03(月) 18:55:49.76 ID:???
じゃあ質問です。
Fisher-Yates shuffle と >>207 ではどちらが速いですか?

233 :Name_Not_Found:2015/08/03(月) 19:42:25.88 ID:???
Fisher-Yates shuffleです

はい次の方どうぞ

234 :Name_Not_Found:2015/08/03(月) 19:48:12.55 ID:???
ありがとうございます!

235 :Name_Not_Found:2015/08/03(月) 19:50:24.03 ID:???
じゃあ質問です。
Fisher-Yates shuffle と >>207 ではどちらがスマートですか?

236 :Name_Not_Found:2015/08/03(月) 19:51:11.43 ID:???
Fisher-Yates shuffleです

はい次の方どうぞ

237 :Name_Not_Found:2015/08/03(月) 19:53:11.23 ID:???
ありがとうございます!

238 :Name_Not_Found:2015/08/03(月) 19:55:41.07 ID:???
昔の偉人は言った
「Fisher-Yates shuffleで非ずはアルゴリズムに非ず」

ありがとうございます!

239 :Name_Not_Found:2015/08/03(月) 20:12:26.21 ID:???
わかると思うけど、本当に言ったのは>>238

240 :215、あっちの806:2015/08/03(月) 20:57:42.04 ID:???
>>226
> アルゴリズムもクソだし、その実装もクソ。
完全に同意。

ただまあ、あまり追い込む意味も無い。
見た感じ、このスレの回答者にはまともなのが2〜3人、
厨二病をこじらせた奴がこれまた2〜3人というところか。
質問者の大半はド初心者で誰が正しいか見当が付かないだろうが、致し方なしだな。

とはいえ、この手の話題はあっちのスレで俺はいいぜ。

>>229
乙。こちらでも試し、同様の結果を得た。
まあ当然だが。

241 :Name_Not_Found:2015/08/03(月) 21:07:41.49 ID:???
いや、だから別にどっちでもいいって。
こっちに書き込みがあればこっちにレスをする。

242 :Name_Not_Found:2015/08/03(月) 21:12:08.22 ID:???
ぶっちゃけ、あっちでもこっちでも
レスしてるのは俺なんだけどなw
IDを変えてね!

243 :Name_Not_Found:2015/08/03(月) 21:42:18.70 ID:???
いくら言い訳をしようとも>>207のクソさが薄れることはない

244 :Name_Not_Found:2015/08/03(月) 22:00:04.91 ID:???
なんだ結局全部lodash厨の自作自演か

245 :Name_Not_Found:2015/08/04(火) 02:05:18.72 ID:???
>>207までもlodash厨だったとはな。

246 :sage:2015/08/04(火) 03:58:30.69 ID:U9a9emCU
「TypeError: undefined is not an object (evaluating foo(a))」のようなエラーを見かけますが、
「evaluating foo(a)」の部分は、どうやって出力しているのでしょうか?

function foo(a) {
 throw new TypeError('undefined is not an object');
}
foo(b); // (理想)TypeError: undefined is not an object (evaluating foo(b))
foo(c); // (現実)TypeError: undefined is not an object

TypeErrorだけでは、「evaluating foo(a)」は出力されないようです。

247 :Name_Not_Found:2015/08/04(火) 05:43:34.52 ID:???
>>218
いやここ立てたの俺だけど急にどうしたんだい?

248 :Name_Not_Found:2015/08/04(火) 05:49:42.98 ID:???
>>218でも>>247でもない。
スレ立てたのは俺

249 :Name_Not_Found:2015/08/04(火) 10:15:30.61 ID:???
>>246
「TypeError: undefined is not an object (evaluating foo(a))」を再現するためのコードとブラウザ名、バージョンを教えてください。
コンソールログはブラウザに依存します。

250 :Name_Not_Found:2015/08/04(火) 12:56:42.98 ID:???
>> 249
ブラウザは「Google Chrome 44.0.2403.125」です。

// 再現するためのコード
function foo(a) {
 var undefined;
 if (a === undefined) {
  throw new TypeError('undefined is not an object');
 }
}

251 :Name_Not_Found:2015/08/04(火) 12:58:36.14 ID:???
>>249
ブラウザは「Google Chrome 44.0.2403.125」です。

// 再現するためのコード
function foo(a) {
 var undefined;
 if (a === undefined) {
  throw new TypeError('undefined is not an object');
 }
}
var a;
foo(a);

252 :Name_Not_Found:2015/08/04(火) 13:44:38.01 ID:???
>>251
GC 44.0.2403.125 で再現できませんでした。
http://jsfiddle.net/feh6dt7s/
"evaluating foo(a)" はありませんが、ログを展開すれば "at foo" のような呼び出し元は確認できるようですが、>>246のコードでも展開できますし、特別な挙動というわけでもなさそうですね。

253 :Name_Not_Found:2015/08/04(火) 19:56:39.00 ID:???
ChromeのV8は最近
var a
a()
のとき今まで
undefined is not a function
だったのが
a is not a function
と表示されるように改良された
そこはある

254 :Name_Not_Found:2015/08/05(水) 11:36:55.08 ID:???
>>253
Function 限定で Object の TypeError は改良されなかったのね
それにしても、>>246はどこへ行ったんだろう?

255 :Name_Not_Found:2015/08/05(水) 13:17:39.24 ID:???
>>254
いろいろ試してみましたが難しいようです。

>>253 の言うように「undefined is not an function」が、
「a is not an function」と出力されてどの変数か分かるようになりましたが、
ユーザー定義のエラーでは再現できないようです。

function foo(a) {
 var undefined;
 if (a === undefined) {
  throw new TypeError('undefined is not an object');
 }
}
var b;
foo(b); // TypeError: undefined is not an object (evaluating foo(b))

本来は「b」としたいのですが、変数名を知るすべがないので、
現状は、次のようなコードでやろうと思います。

function foo(a) {
 var undefined;
 if (a === undefined) {
  throw new TypeError('undefined is not an object (evaluating foo(a))');
 }
}
var b;
foo(b); // TypeError: undefined is not an object (evaluating foo(a))

256 :Name_Not_Found:2015/08/05(水) 15:19:30.71 ID:???
debuggerでもおいたら?

257 :252:2015/08/05(水) 18:20:56.23 ID:Bzmb2cTP
>>255
結局、"evaluating foo(a)" の再現コードは何だったのでしょう?
>>252で書いたように私の手元では再現できませんでしたが、あなたの環境では再現できるのでしょうか。
再現できるのなら再現条件も特定可能だと思うのですが。
正直、該当コードには throw new TypeError(a + ' is not an Object (evaluating foo(a))') と書かれているような気もしますね。

258 :Name_Not_Found:2015/08/05(水) 19:18:52.50 ID:???
もうそこは突っ込まなくていいでしょ
質問者とは訳の分からないものなんだよ

259 :Name_Not_Found:2015/08/06(木) 21:37:01.35 ID:???
>>257
>>255 を読んでいただければ、意図していることが伝わると思ったのですが、どうも説明が足りなかったのか勘違いされているようです。
私がやりたいことは、foo(a);と呼ばれたら「TypeError: undefined is not an object (evaluating foo(a))」、foo(b);なら「TypeError: undefined is not an object (evaluating foo(b))」のように呼び出し元のコードを出力させたいのです。

>>252
> "evaluating foo(a)" はありませんが、
>>251 のコードは、「evaluating foo(a)」が出力されなくて当然です。
なぜなら、その部分が出力できないから質問しているのです。


不完全ですが、次のコードは意図したとおりに動くコードです。
ただ、arguments.calleeは非推奨なのでStrictモードでは動作しません。

(function (undefined) {
 var b;
 foo(b);
 function foo(a) {
  if (a === undefined) {
   var code = arguments.callee.caller.toString().match(/foo\(.*\)/)[0];
   throw new TypeError('undefined is not an object (evaluating ' + code + ')');
  }
 }
})();

260 :252:2015/08/06(木) 21:55:33.81 ID:tK2OlZv6
>>259
> >>251 のコードは、「evaluating foo(a)」が出力されなくて当然です。
私は>249で "「TypeError: undefined is not an object (evaluating foo(a))」を再現するためのコード" を求めましたが、あなたは再現不可能なコードを掲示していたのですね。
>>246で "「TypeError: undefined is not an object (evaluating foo(a))」のようなエラーを見かけますが、" と書いているのであなたが見たことがあるサイトなりコードなりを開示していただけるものと思っていました。
私は見たことがありません。再現できなければ、検証できません。

> ただ、arguments.calleeは非推奨なのでStrictモードでは動作しません。
arguments.callee を使うなら、Function#name も使えば良いでしょう。
IE8 にも対応するならその方法も有ですが。

261 :Name_Not_Found:2015/08/06(木) 22:40:52.65 ID:???
>>260
お前はまだまだエスパー力が低いな
あとスルー力も低い
終わった質問を掘り返すな
きちんと墓に埋めたままにしろ

262 :Name_Not_Found:2015/08/07(金) 00:56:19.39 ID:???
>>260
TypeError と evaluating で検索してみたら
見つかるから、でる場合があることは確かだと思うよ。

jQuery関連が多い気もするけど、jQueryのソースコードに
TypeError も evaluating も書いてない。

263 :Name_Not_Found:2015/08/07(金) 01:08:13.39 ID:???
>TypeError も evaluating も書いてない。

・・・

264 :Name_Not_Found:2015/08/07(金) 01:11:07.76 ID:???
>>263
言いたいことはちゃんと言おう。
あんたは再現性がないコードを出す奴と同じだ。

で、jQueryのソースコードに書いてないということの意味は・・・
何がいいたいのかはわかるね?w

265 :Name_Not_Found:2015/08/07(金) 01:12:56.30 ID:???
もしかして、そういうエラーが出るのはSafariじゃないのかな?

266 :Name_Not_Found:2015/08/07(金) 07:14:27.45 ID:???
生産性のない揉め事はやめようぜ……

267 :Name_Not_Found:2015/08/07(金) 07:57:05.17 ID:???
>>264
>言いたいことはちゃんと言おう。
 ↓
>何がいいたいのかはわかるね?w

キチガイじみてる

268 :Name_Not_Found:2015/08/07(金) 09:33:07.13 ID:???
目くそ鼻くそ

269 :Name_Not_Found:2015/08/08(土) 08:50:53.87 ID:???
品性のない否定的は発言はスルー推奨

270 :Name_Not_Found:2015/08/08(土) 09:35:13.20 ID:???
は、はつげんは・・

271 :Name_Not_Found:2015/08/08(土) 13:27:28.57 ID:???
また、テンプレ荒らしが新スレを立ててた

+ JavaScript の質問用スレッド vol.126 + [転載禁止]©2ch.net
http://peace.2ch.net/test/read.cgi/hp/1439005423/

272 :Name_Not_Found:2015/08/08(土) 16:31:06.52 ID:???
せっかく乱立したのがまとめて流れたのにな

273 :Name_Not_Found:2015/08/08(土) 18:25:19.88 ID:???
また流せばいいよ。

274 :age:2015/08/09(日) 22:48:21.18 ID:???
age

275 :Name_Not_Found:2015/08/13(木) 20:37:37.37 ID:gxiqA4fM
なんでタブ使うと怒られるんだ

276 :Name_Not_Found:2015/08/13(木) 21:50:36.40 ID:???
スレ違いだから、こっちへ行け
http://hayabusa6.2ch.net/test/read.cgi/senmon/1437993191/l50

277 :Name_Not_Found:2015/08/16(日) 21:30:18.10 ID:???
javascriptに執着する人ってなんでphpでやらないの?
システムやらDB連携、外部読み込みならどう考えてもphpの方が向いているでしょうに。
SEO的にもそうだし、クロスブラウザ・デバイスで考えてもそう。
jsならではの部分って結局アニメーションに尽きると思うんだが。

278 :Name_Not_Found:2015/08/16(日) 21:44:50.49 ID:???
phpを使えないレンタル鯖なんじゃね?
俺も昔はなんでもJSでやろうとしたもんだ

279 :Name_Not_Found:2015/08/16(日) 23:03:51.21 ID:???
そうなのか?
angular・backbone・knockoutもそうなのだろうか。
あ、非同期もphpには無理か。

280 :Name_Not_Found:2015/08/17(月) 02:07:22.88 ID:???
基本的なこの世の法則として
クライアントとサーバサイドで処理を分担するほど複雑になる
今は自然とクライアントサイドの比重が大きくならざるを得ないのだから
いっそ殆どをクライアントサイドに持っていったほうが結果として全体の構造がシンプルになる
残った部分はNodeでも使って同じ知識を使えたほうが効率的だ
それこそDBだってクライアントサイドと同じIDB使えるし

281 :Name_Not_Found:2015/08/17(月) 02:12:30.42 ID:???
>基本的なこの世の法則として

282 :Name_Not_Found:2015/08/17(月) 07:11:11.37 ID:L68/ASZb
event.value = (new Date()).toString();

これをたとえば3日後とか7日後とかにずらすにはどうしたら良いのでしょうか

283 :Name_Not_Found:2015/08/17(月) 08:05:13.69 ID:???
>>277
執着してるから

284 :282:2015/08/17(月) 09:55:34.20 ID:L68/ASZb
var date=new Date();
date.setDate(date.getDate()+7);
event.value = (date).toString();

なんとか出来たみたいですが、間違いは無いでしょうか?

285 :Name_Not_Found:2015/08/17(月) 10:15:29.99 ID:???
>>284
俺だったら可読性重視でmomentってライブラリを使うかな。

<script src='https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.10.6/moment.min.js'></script>
<script>
moment().add('days', 7).toString()
</script>

286 :Name_Not_Found:2015/08/17(月) 10:18:52.11 ID:???
>>284
合ってますが、(date) は括弧が不要です。
event という名前も少し気にかかりますね。
addEventListener 等で使用する event オブジェクトは基本的に改変しないほうが良いでしょう。

287 :285:2015/08/17(月) 10:49:29.39 ID:???
ごめん。古い書き方だった。

× moment().add('days', 7).toString()
○ moment().add(7, 'days').toString()

7 daysという風に英文法通りに書くのが推奨。
たしかにこっちのほうが可読性高い。

あと、一週間であれば、以下のように書ける。
moment().add(1, 'week').toString()
(2週間なら複数形でweeksの方が良い。sつけてもつけなくても同じだけど)

288 :282:2015/08/17(月) 11:31:49.59 ID:L68/ASZb
>>285
>>286

お二方ともご教示ありがとうございます!
こんなに早くレスをいただけるとは思ってませんでした
今後とも精進したく存じます

289 :Name_Not_Found:2015/08/18(火) 21:53:11.55 ID:???
http://jbbs.shitaraba.net/netgame/14889/
ここに「おはむぅ('ω'`)」って書きこんで

290 :Name_Not_Found:2015/08/18(火) 23:04:26.87 ID:???
http://qiita.com/pollseed/items/920307fd05f10e69001c
>>関数の中に存在するローカル変数に関しては宣言に留まり、初期化までは行わないということ
これっておかしくないですか?
未初期化というとletやconstのTDZを思い浮かべますよね?
undefinedに初期化されると言う方が正しいのでは?

291 :Name_Not_Found:2015/08/19(水) 00:59:10.47 ID:???
> undefinedに初期化されると言う方が正しいのでは?
日本語に直せば、
未定義に初期化となる。

冗長だ


関数の中に存在するローカル変数に関しては宣言に留まり、未定義のままであるということ

未定義は定義すらされてない状態なのだから
初期化もされてないのだ。

292 :Name_Not_Found:2015/08/19(水) 01:01:56.98 ID:???
phpからjsに変数渡せるらしいけど画像を変数として渡すことはできないの?
<input type="hidden" name="file" value=$img>
これができないんだけど

293 :Name_Not_Found:2015/08/19(水) 04:03:55.31 ID:???
<input type="hidden" name="file" value=$img>

type="hidden"の場合、
valueは、送信させる任意のテキスト

294 :Name_Not_Found:2015/08/19(水) 06:22:14.68 ID:???
>>291
それ日本語に直すのがおかしいですよ。
初期化が行われないということはアクセス時にエラーになるということで、
undefinedが取得できる時点で初期化済ということなのです。

http://people.mozilla.org/~jorendorff/es6-draft.html#sec-variable-statement
varで宣言すると変数の定義と同時にundefinedに初期化されます。
これは関数実行時ではなく、関数がパースされた時点で行われる処理です。

対してletとconstでは対象文が評価されるまで初期化が行われません。
http://people.mozilla.org/~jorendorff/es6-draft.html#sec-let-and-const-declarations

295 :Name_Not_Found:2015/08/19(水) 09:02:51.45 ID:???
>>294
おそらく、著者は「VariableStatement の初期化が行われない」といいたかったのでは?
VariableStatement に入ってないのなら VariableStatement の初期化が行われないのは当然の事。
ただし、そうなってくると「ローカル変数に関しては宣言に留まり」の表現が怪しくなりますが(変数宣言も行われていないのではないか)。

ここで異議を唱えても元の記事に反映されることはないので、Qiita 内で言及した方がいいと思いますよ。

296 :Name_Not_Found:2015/08/19(水) 09:46:47.77 ID:???
phpからJSを実行する場合に、
php内でJSで使う変数を一つ宣言して、その後JSファイルを実行し
その中でその変数を参照しても問題ないけれど、
直接JSを実行するとその変数が宣言されていないので当然エラーになります。
これを回避する方法ありますか?

297 :Name_Not_Found:2015/08/19(水) 09:51:15.62 ID:???
ああ、回避っていうのは、その変数が未定義かどうか判定して
ifで分岐するなどの対策を取りたいのですがやり方が分かりません。

298 :Name_Not_Found:2015/08/19(水) 09:54:47.49 ID:???
typeofで出来ました。

299 :Name_Not_Found:2015/08/19(水) 11:20:46.01 ID:???
ボタンなどは押さずにページに移動しただけでPOSTを送信する方法はありますか?

infokeyに"QRQFEON"Iを送信
modeに"insert"を送信
fileに画像を送信
commentに"コメント"を送信
したいです。
画像はURLで指定したいです。

300 :Name_Not_Found:2015/08/19(水) 13:43:02.87 ID:???
>>294
> 初期化が行われないということはアクセス時にエラーになるということで、

そんな言語聞いたことがない

301 :Name_Not_Found:2015/08/19(水) 13:46:44.69 ID:???
var _ipt = ({});
これはどういう意味でしょうか?
マップですか?配列ですか?それとも別の何かでしょうか?

302 :Name_Not_Found:2015/08/19(水) 13:57:54.95 ID:???
ただのオブジェクトじゃ

303 :Name_Not_Found:2015/08/19(水) 14:02:36.10 ID:???
<script type="text/javascript">
var _ipt = ({});
_ipt.infokey = "QRQFEONI";
_ipt.mode = "insert";
_ipt.file = $imgbyte;
_ipt.comment = "コメント";

// formタグのもとを作成
var _form = document.createElement("form");

for (var i in _ipt) {
// inputタグを作成
var _tmpInput = document.createElement("input");
_tmpInput.setAttribute("name", i); // inputタグのname属性の値
_tmpInput.setAttribute("type", "file"); // inputタグのtype属性の値(全部textで良さそうな気がする)
_tmpInput.setAttribute("value", _ipt[i]); // inputタグのvalue属性の値

// formタグの中にinputタグを追加
_form.appendChild(_tmpInput);
}

_form.action = "http://iup.2ch-library.com/jbk.cgi"; // formタグのaction属性の値と同じ。
_form.method = "POST"; // formタグのmethod属性の値と同じ。(get / post)
_form.encoding="multipart/form-data";

// formを送信
_form.submit();
</script>

304 :Name_Not_Found:2015/08/19(水) 14:03:08.44 ID:???
↑のソースを書いてもPOST送信が何故か出来ません。
何故でしょうか?

305 :Name_Not_Found:2015/08/19(水) 14:05:38.48 ID:???
後は何とかするっていって結局他人頼みかよwww

306 :Name_Not_Found:2015/08/19(水) 14:09:51.46 ID:???
PHP部分は何とかしたけどjsが分からなかったから

307 :Name_Not_Found:2015/08/19(水) 15:42:29.66 ID:???
>>303
http://iup.2ch-library.com/jbk.cgi に画像を自動投稿する迷惑スクリプトの作成依頼ですか。

308 :Name_Not_Found:2015/08/19(水) 15:59:24.68 ID:???
>>307
違います。そのURLに画像をPHPで編集して投稿するスプリクトです。

309 :Name_Not_Found:2015/08/19(水) 19:02:04.89 ID:???
>>300
変数は初期化されないとアクセス(代入も参照も)できない
宣言代入文のみが特別に初期化代入ができる
ただしvarの場合は事前にundefinedで初期化される

310 :Name_Not_Found:2015/08/19(水) 19:14:56.70 ID:uJA7D9Uy
textラインをselectエリアに追加しようと思うんだけどうまくいきません。
挿入ボタンを押すと空白が出ちゃうんだよな

わかる人改善点教えて

<script>
function ninnitext() {
l_num = document.F1.place.length;
i_num = document.F1.place.selectedIndex;
s = document.F1.place_name.value;
if (s != "") {document.F1.place.length = l_num+1;
document.F1.place.size = l_num+1;
for (n=l_num;n>i_num;n--) {
document.F1.place[n].text = document.F1.place[n-1].text;
document.F1.place[n].value = document.F1.place[n-1].value;}
document.F1.place[i_num].text = s;
document.F1.place[i_num].value = s;
alert(s);}}
</script>

<html>
<form name="F1" action="#">
<select name="place" size="3">
<option value="25">AAAA
<option value="26">BBBB
<option value="27">CCCC
<input type="text" name="place_name">
<input type="button" value="挿入" onclick="ninnitext()">
</form>
</html>

311 :Name_Not_Found:2015/08/19(水) 19:52:30.06 ID:???
>>309
初期化されてない変数を読み取るとundefinedになるんだよ。

例えば、グローバル変数として、このように書くと、
var hoge = 1;

console.log(window.hoge); // 1
になるのはわかるね?

グローバル変数を作らずこのようにすると
console.log(window.hage); // undefined

undefinedになる。
いきなり変数を参照すると、undefinedになるという証明。

undefinedは初期化されてないという意味

312 :Name_Not_Found:2015/08/19(水) 20:53:01.76 ID:???
>>311
初期化されていないプロパティを読み取ると undefined になりますが、初期化されていない変数を参照すれば ReferenceError になるでしょう
hage; // ReferenceError: hage is not defined

313 :Name_Not_Found:2015/08/19(水) 21:07:52.46 ID:???
>>312
ReferenceErrorになるのはstrictモードのみです。
これは比較的最近作られた機能で、
元来undefinedは初期化されてないことを表すものなのです。

314 :Name_Not_Found:2015/08/19(水) 21:44:43.43 ID:???
>>313
Strict Mode でなくても ReferenceError になりますよ
http://jsfiddle.net/Lhhot9rk/

315 :Name_Not_Found:2015/08/19(水) 22:43:28.12 ID:???
POSTでのファイル送信
POSTで文字列とバイナリを送る事はできたのですがどうやらバイナリを送った場合ファイル名がないのでエラーになってるっぽいです(予想)
どうすればバイナリの変数に追加して適当なファイル名を送る事ができますか?

316 :Name_Not_Found:2015/08/20(木) 08:42:07.60 ID:???
>>311
いいえ、初期化されていない変数を読み取ることは出来ません
変数においての未初期化とundefinedで初期化されていること、
またプロパティアクセスで発見出来なかった時のundefinedは全て違います


function fn() {
//ここから変数hogeはスコープとして有効ですが、未初期化です

// console.log(hoge); // 未初期化の変数へのアクセスのためエラーにされます。

//ここまでが所謂TDZです
let hoge = 1; // 1が初期化代入されます
//ここからは参照も代入も自由にできます

//スコープここまで
}

317 :295:2015/08/20(木) 19:46:14.87 ID:/5aZYAJP
>>316
あなたの考えは間違っていません。
あなたが>290,294なら qiita で著者に修正を求めることをお勧めします。
ここで間違いを正すことは出来ませんし、生産性のある行動とは思えません。

318 :Name_Not_Found:2015/08/20(木) 23:07:25.13 ID:???
間違えてるのは>>311だけだと思うが。

319 :Name_Not_Found:2015/08/21(金) 01:44:07.64 ID:???
>>313も間違っているような

320 :Name_Not_Found:2015/08/21(金) 18:18:07.94 ID:???
>>311 == >>313 == >>317 だろうな

321 :Name_Not_Found:2015/08/21(金) 22:45:30.83 ID:???
>>317は間違えてないかな

322 :Name_Not_Found:2015/08/22(土) 02:09:49.54 ID:???
この中に正直者が一人だけいます。
誰でしょう?

323 :Name_Not_Found:2015/08/22(土) 04:09:39.76 ID:???
>>321その通り
もし>>311 == >>313がtrueなら
true == >>317
となるから>>317の内容は真になる

324 :Name_Not_Found:2015/08/23(日) 01:16:53.61 ID:???
jsonをテキストに書いて、読み込むときに思ったのですが、
jsonってコメント書いちゃダメでしたね。
下記のようにすると文法的に誤りになるのですうが
どのようにコメントを書くように工夫すべきでしょうか?
{
"name": "2chネラー", // 名前
"age": 38 // 年齢
}

325 :Name_Not_Found:2015/08/23(日) 01:24:41.64 ID:???
JS初心者です。

//問題を作る関数(ステージごとに内部実装が異なる!)
function makeQ(){

var a = GetRand(2,99);
var b = GetRand(0,9)*10+7;

p = a;
q = b;
kigou = "×";

}


↑掛け算の問題をランダムに表示するスクリプトの一部ですが
var aが左辺、var bが右辺を表しています
左辺と右辺をランダムに入れ替えたいです。何を書けばいいかわかりません。

殆どJSに触れたことがなく調べてもチンプンカンプンなので
恐縮ながら質問してみました。どうかご教授ください。

326 :325:2015/08/23(日) 01:25:38.59 ID:???
ちなみ上の方はこうなっています

<script type="text/javascript">

// グローバル変数
var inited = 0; //初期化したかどうかのフラグ
var started = 0; //開始したかどうかのフラグ
var questionNumber = 0; // 現在の問題数
var questionDate = 0; // 出題時の時間
var startDate = 0; // 開始時の時間
var hitNumber = 0; // 現在の正解数
var p = 0; // 一個目の数字
var q = 0; // 二個目の数字
var kigou = ""; //演算子

327 :Name_Not_Found:2015/08/23(日) 02:29:24.46 ID:???
>>324
コメントを書きたいと思ったら、
YAMLに変更する。

328 :Name_Not_Found:2015/08/23(日) 05:18:55.69 ID:???
eval使ってパースすればいいじゃん

329 :Name_Not_Found:2015/08/23(日) 09:09:38.28 ID:???
>>325-326
Math.floor(Math.random() * 2)

Math.random()は、0.0以上1.0未満の乱数を返す。
その返り値に2を掛けると、0.0以上2.0未満となる。

Math.floor()は、小数点以下を切り捨てるので、
結局、0か1になる

if(0 === Math.floor(Math.random() * 2)){
p = a;
q = b;
}else{ // 1の時は、逆に設定する
p = b;
q = a;
}

== は等価演算子で、左右の型が異なっていても、
型変換した結果、一致すれば一致となる

=== は厳密等価演算子で、同じ型で、値も同じ場合に一致する

330 :329:2015/08/23(日) 10:47:26.36 ID:???
>329
>if(0 === Math.floor(Math.random() * 2)){
別に、小数点以下を切り捨てて、
整数にする必要は無かったので、修正

if(Math.random() * 2 < 1.0){

331 :Name_Not_Found:2015/08/23(日) 12:10:48.50 ID:???
これでいいだろ。わざわざ難しくすんな

if(Math.random() < 0.5){

332 :Name_Not_Found:2015/08/23(日) 13:56:22.71 ID:???
JavaScriptの関数で 文字列 'NaN' が返って来るものはありますか?

333 :325:2015/08/23(日) 14:14:31.80 ID:???
>>329-331
おお!目的の物ができました!!
ありがとうございます!!

334 :Name_Not_Found:2015/08/23(日) 18:35:39.80 ID:???
>>332
Number, parseFloat
他にもあるだろうから自分で調べて

335 :334:2015/08/23(日) 18:36:34.96 ID:8ZCZQJLl
ああ、文字列か
String かね

336 :Name_Not_Found:2015/08/23(日) 21:23:09.26 ID:???
>>324
知恵袋で不可思議な解決法を取っている人がいますね。
当然の事ながら、"//" のキーを持つオブジェクトが生成されるのでコメント扱いにはなりません。
http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q14149394349

> どのようにコメントを書くように工夫すべきでしょうか?
コメントを入れなくてもわかるようにしてください。
ReadMe.txt を作るとか、JSON出力するプログラミング言語のコード上でコメントを入れるとか。

337 :Name_Not_Found:2015/08/23(日) 21:57:17.56 ID:???
>>324
本当か?
俺は普通にそういうコメント書いているぞ!
全く問題ない

338 :Name_Not_Found:2015/08/23(日) 22:49:19.54 ID:???
>>337
試してみたところ、SyntaxError になりますね。
オブジェクト初期化子と勘違いしておられるのでは?

JSON.parse('{"name":"Name Not Found",// 名前\r\n"age":28}'); // SyntaxError: Unexpected token /

339 :Name_Not_Found:2015/08/23(日) 22:55:23.73 ID:???
>>338
それはエラーになるよなあ。

340 :Name_Not_Found:2015/08/24(月) 02:21:54.32 ID:???
parseや送信する前にコメント取り除く処理でも走らせればいいんじゃね?

341 :Name_Not_Found:2015/08/24(月) 02:40:28.20 ID:???
だからeval使えって
eval('('+'{"name":"Name Not Found",// 名前\r\n"age":28}'+')')

342 :Name_Not_Found:2015/08/24(月) 07:14:02.03 ID:???
コメントをつけるとJSONフォーマットとしては不正だし、可搬性がなくなる(JavaScript以外で parse 出来ない)。
コメントをつけるのは諦めて、ドキュメントをつけるのが無難じゃないかなー。

343 :Name_Not_Found:2015/08/24(月) 19:21:50.07 ID:???
例えばSublimeTextの設定ファイルとか、JSONがベースだけどコメント使えるの結構一般的よ。
まあでも//コメントくらいなら事前に取り除くの余裕でしょ。
replace(/\/\/.*/g, '')でいいじゃん。

344 :Name_Not_Found:2015/08/24(月) 20:23:30.21 ID:???
>>343
> replace(/\/\/.*/g, '')でいいじゃん。
{"name":"Name Not Found","text":"(//∇//)"}
で不正に削除される。

345 :Name_Not_Found:2015/08/24(月) 20:54:23.24 ID:???
自分も勉強のために考えてみました
>>325
var q = [a,a];
q[Math.random()*2|0]=b;

346 :Name_Not_Found:2015/08/24(月) 21:27:33.17 ID:???
コメント用の捨てデータ入れとけば良いんじゃないか?
読み込み側で捨てれば良いだけだし。

347 :Name_Not_Found:2015/08/24(月) 22:22:15.87 ID:???
コメント入れたいなら、YAMLを使えばいい
http://nodeca.github.io/js-yaml/

348 :Name_Not_Found:2015/08/24(月) 22:57:31.28 ID:???
>>347
無理にJSONでコメントを付けようとするよりエレガントだな

349 :Name_Not_Found:2015/08/25(火) 00:13:39.88 ID:???
index1.html
index2.html
があって、それぞれ<script></script>でjavascript使う場合、両者間でデータ交換方法は有りますか?標準的な方法を教えて。

350 :Name_Not_Found:2015/08/25(火) 00:53:24.24 ID:???
>>349
getクエリ

351 :Name_Not_Found:2015/08/25(火) 00:56:28.65 ID:???
id が例えば input type="button" を指す場合、
document.getElementById( id ).nodeName
実行すると "INPUT" となりました。
必ず大文字で返るのでしょうか?HTMLはそういう仕様ですか?
でも
document.getElementById( id ).getAttribute('type')
だと "button" となり小文字でした。良く分かりません。

352 :Name_Not_Found:2015/08/25(火) 01:21:19.70 ID:???
>>350
も少しヒントお願いしますだ。

353 :Name_Not_Found:2015/08/25(火) 01:35:51.54 ID:???
>>352

>>350は意味不明だから現時点では適当に聞き流していい。

index1.html、index2.htmlの関係によって代わる。

同じドメインなのか、違うドメインなのか、
index2.htmlはindex1.htmlから開くのか、
簡単にアクセスできる方法が使えればその簡単な方法を使うし、
そうでなければ複雑な方法を使わざるを得ない。

標準的な方法というのは、index1.htmlとindex2.htmlの関係で決まる。

354 :Name_Not_Found:2015/08/25(火) 01:38:08.04 ID:???
【検索した?】【ヒットした?】(AA略

355 :Name_Not_Found:2015/08/25(火) 10:41:33.89 ID:???
>>349
いろいろ方法はあるが、最も適しているのはBroadcastChannel
https://html.spec.whatwg.org/multipage/comms.html#broadcasting-to-other-browsing-contexts

356 :Name_Not_Found:2015/08/25(火) 18:27:32.72 ID:???
そんな今すぐ使えないAPIを紹介されても
意味ないしwww

https://developer.mozilla.org/en-US/docs/Web/API/Broadcast_Channel_API

Feature Chrome Firefox (Gecko) Internet Explorer Opera Safari
Basic support Not supported 38 (38) Not supported Not supported Not supported
Available in workers Not supported 38 (38) Not supported

357 :Name_Not_Found:2015/08/25(火) 18:32:03.34 ID:???
今使えないんじゃ「最も適していない」だなw

358 :Name_Not_Found:2015/08/25(火) 18:49:00.81 ID:???
window.postMessage の方は IE11- がフルサポートしていない点に注意すれば使えそうですね。
http://caniuse.com/#search=postMessage
https://msdn.microsoft.com/ja-jp/library/cc197015.aspx

359 :Name_Not_Found:2015/08/25(火) 19:10:49.62 ID:???
ドメイン同じならWebStorageのイベント経由でやったりも

360 :Name_Not_Found:2015/08/25(火) 19:12:03.73 ID:???
>>349
この手の要求なんて大昔から有ると思うんですが未だにどのブラウザでも完全にサポートされている標準的な手法は無いんですか?

361 :Name_Not_Found:2015/08/25(火) 19:19:33.17 ID:???
>>360
IE6 でも対応可能な方法をお望みなら Cookie や GET パラメータを使えば良いんじゃないでしょうか。

362 :361:2015/08/25(火) 19:21:53.69 ID:Hk79aia8
最も、大昔から使われている方法という意味ならサーバサイドでセッションを使うのが現実解です。
クライアントサイドでページ間のデータ引渡しをすべきではありません。

363 :Name_Not_Found:2015/08/25(火) 19:29:44.72 ID:???
>>362
>クライアントサイドでページ間のデータ引渡しをすべきではありません。
この理由が分からないんですが、それをやると何か問題が有るのですか?

364 :Name_Not_Found:2015/08/25(火) 19:34:07.41 ID:???
問題がないから、postMessageや
BroadcastChannelがあるんだがねぇw

365 :361:2015/08/25(火) 19:41:00.10 ID:Hk79aia8
>>363
あなたが「どのブラウザでも完全にサポートされている標準的な手法」を求めたからです。
JavaScript はブラウザ依存性のある言語であり、各種APIのサポート状況もまばらです。
サーバサイドで実行すればブラウザに依存せず、確実にデータを引き渡すことが可能です。
確実性を求めるならサーバサイドで実装すべきです。

366 :361:2015/08/25(火) 19:46:25.96 ID:Hk79aia8
当然の事ながら、JavaScript はユーザが明示的に JavaScript を無効化していれば動作しません。
サーバサイドスクリプトは JavaScript が無効化されていても動作するという点で優位性があります。
JavaScript はサーバサイドで実現できない範囲に留めて置く方がユーザビリティが高いといえます。

367 :Name_Not_Found:2015/08/25(火) 20:18:20.23 ID:???
後出しの言い訳っぽいなw

もしサポートされてないブラウザがあるからという理由なら
クライアントサイドでページ間のデータ引き渡しが「できない」と
いう言い方をするはず。「すべきでない」という言い方になるはずがない。

368 :361:2015/08/25(火) 21:07:07.92 ID:Hk79aia8
>>367
私の知りうる全てのブラウザで不可能であれば「出来ない」もしくは「してはならない(MUST NOT)」といいます。
出来るブラウザと出来ないブラウザがある場合は「すべきではない(MAY NOT)」といいます。
質問者は>>360でサポートブラウザを気にしている様子だった為、サポートブラウザに限定して回答しました。
更に良い解決法があるのであれば、質問者にアドバイスしてあげたらいいと思います。

369 :Name_Not_Found:2015/08/25(火) 21:36:13.98 ID:???
localStorage

370 :Name_Not_Found:2015/08/25(火) 22:03:43.39 ID:???
JavaScriptでCookieを削除する場合は、実際には有効期限を過去に設定するだけですよね。
そういう方法ではなくて本当に完全に削除してしまうことはJavaScriptでは出来ないですか?

371 :Name_Not_Found:2015/08/25(火) 22:55:49.27 ID:???
>>369
IE7で使えないですね

372 :Name_Not_Found:2015/08/25(火) 22:56:51.78 ID:???
>>371
そんなもんサポートする必要ない

373 :Name_Not_Found:2015/08/25(火) 23:10:59.43 ID:???
>>370
document.cookie = '';

374 :Name_Not_Found:2015/08/25(火) 23:28:16.40 ID:???
>>372
あなたにとってはそうなんでしょう
でも、どのブラウザでも完全にサポートされている機能ではないですね

375 :Name_Not_Found:2015/08/25(火) 23:37:49.00 ID:???
>>373
本当ですか?

376 :Name_Not_Found:2015/08/25(火) 23:44:15.11 ID:???
>>375
なぜですか?

377 :Name_Not_Found:2015/08/26(水) 00:35:39.93 ID:???
ヒント ガラケー対応

378 :Name_Not_Found:2015/08/26(水) 00:52:31.10 ID:???
>>376
stackoverflowに373のようなやり方は無かったので。
stackoverflowの回答はどれも1970年にセットする方法ばかりでした。

379 :Name_Not_Found:2015/08/26(水) 09:38:04.88 ID:???
>>378
失礼、勘違いしていました
1970/01/01 を指定する以外の方法は存在しないと思います

380 :Name_Not_Found:2015/08/26(水) 20:31:17.11 ID:???
>>368
BroadcastChannelやpostMessageが多くのブラウザでサポートされないないから
使わないというのは現代において間違った考え方だと思う。
APIってのは実体と同じくらい概念や仕様に価値が有るのだから、
じゃあCookieでも使ってポリフィルでも作ろうかとなるのが良い考え方。

381 :Name_Not_Found:2015/08/26(水) 20:41:47.98 ID:???
↑手段と目的を履き違えている例(笑)

作りたいのはポリフィルではなく、
単にウインドウ間のデータ共有

382 :Name_Not_Found:2015/08/26(水) 21:05:58.65 ID:???
それは違うな、履き違えてるのは君の方だ。
それだったら標準的な手法なんて尋ねないから。
なんでもいいから目的が達成できるコードをくれとなるだろうよ。
プログラミングというのは道具でもあるし、意志の表現である。
大局的に見て型に嵌ることも重要。

383 :Name_Not_Found:2015/08/26(水) 21:22:07.39 ID:???
質問内容を具体的に書かなかったせいで混乱するいい例だな
index1とindex2を同時に開かせておいた上で情報のやりとりをしたいとは書いてないんだよな
具体的な使用目的がわからないから回答も的を得ない物になるんじゃないのかな

384 :361:2015/08/26(水) 21:54:00.25 ID:ZH0Kd0vD
>>380
JavaScript を使う前提で>>383のいうように同時に2つのウインドウを開いており、互換性を考慮しないなら、標準仕様の中で BroadcastChannel が機能的に最も優れている側面が多いと私も思いますよ。
Polyfill も肯定しますし、必要になれば作ります。
(Cookie で Polyfill を実装するなら BroadcastChannel よりも WebStorage が向いているとは思いますが)

ただし、「それを本当に JavaScript で実装すべきか」という考えは常に持っておくべきだと思います。
ある動画サイトではマイリスト機能のデータ保管場所に Cookie を使っていましたが、私はそれを知らずにキャッシュをクリアした際にマイリストも消えてしまいました。
マイリストはユーザのものではありますが、特定のサイトに紐付いたデータならクラウドに保存して欲しいと思います。
一時的に利用するデータならセッションIDのようにCookieに保存するのは有ですが、クライアントサイドでデータが丸見えである必要性もないのでデータの大本はサーバサイドにあって良いケースが多いと思います。
実際、JavaScript でページ間のデータを保持したくて質問する人の中には「サーバサイドスクリプトを使えるWebホストサービスではないからJavaScriptで代替したい」という人も相当数見ています。
あくまで私の経験上であり、逆にクライアントサイドで持つべきデータもあるのでしょうが、具体的な用途が何も示されていない現状では何ともいえませんね。

385 :Name_Not_Found:2015/08/26(水) 23:29:56.63 ID:???
BroadcastChannelのポリフィルは実装不可能。
そんなことも知らずに言ってるのか。

386 :Name_Not_Found:2015/08/26(水) 23:40:49.04 ID:???
>>385
誰に対していってるの?

387 :Name_Not_Found:2015/08/26(水) 23:46:08.34 ID:???
>>380は BroadcastChannel の Polyfill を Cookie で作れるらしいので是非見てみたい

388 :361:2015/08/27(木) 00:07:57.98 ID:FPSC64Ax
>>385
それは私に対しての返答ですか?
BroadcastChannel の Polyfill は>>380の言及に返した程度の感想であって、作れるとも作れないとも断言した覚えはありません。
むしろ、>>380が「BroadcastChannelやpostMessageがブラウザでサポートされないなら Polyfill で吸収すればいい」という趣旨の発言をされているので>>380に指摘して頂きたく。
私も BroadcastChannel の Polyfill を Cookie で実装できるとは思っていません。だからこそ、「WebStorage が向いている」と発言したのです。
BroadcastChannel は window.postMessage で実装出来そうな予感がありますが、仕様を全て読みきっているわけでないのであなたの意見が正しいのかもしれません。
差し支えなければ、BroadcastChannel の Polyfill が実装不可能な理由を教えて頂けると前向きな議論が出来ると思います。

389 :361:2015/08/27(木) 00:14:23.10 ID:FPSC64Ax
> 私も BroadcastChannel の Polyfill を Cookie で実装できるとは思っていません。
実現性が低いとは思っていますが、断定するには情報不足だったので上記は撤回しておきます。
event 周りの実装が面倒になるはずですが、Cookie で実装するなら setInterval で document.cookie を監視するぐらいなのかな。

390 :Name_Not_Found:2015/08/27(木) 01:48:26.16 ID:???
BroadcastChannelのポリフィルなんか作ってる暇があったら
普通にウインドウ間で情報を渡せばいいだけ。

391 :Name_Not_Found:2015/08/27(木) 01:49:26.43 ID:???
>>388
> 差し支えなければ、BroadcastChannel の Polyfill が実装不可能な理由を教えて頂けると前向きな議論が出来ると思います。

BroadcastChannelを実現するのに必要な機能を
IEが持っていないから。
ついでに大半のスマホも同じ。

392 :Name_Not_Found:2015/08/27(木) 08:52:04.21 ID:???
何だろう、この日本語が通じてない感は

ブラウザのサポート状況なんて気にしている暇があったらポリフィルを作れ(>>380)
 ↓
ポリフィルならWebStrageの方がいいんじゃない
 ↓
BroadcastChannelのポリフィルは実装不可能。そんなことも知らずに言ってるのか。
 ↓
そんな事いってないけど、作れない理由は?
 ↓
BroadcastChannelを実現するのに必要な機能をIEが持っていないから。

393 :Name_Not_Found:2015/08/27(木) 10:56:48.94 ID:???
349のような質問に対しては現時点で存在する全てのos、ブラウザを前提に検討するのは無理があると思いますが、私はweb関連の仕事をやっていないので分からないんですが、web業界では全てのos、ブラウザのサポートは常識なんですか?

394 :Name_Not_Found:2015/08/27(木) 11:20:44.15 ID:???
>>393
MSのサポートライフサイクルとしては IE7 が最低ライン
残りは職場の制作ポリシーとクライアントの希望次第なので画一的にはいえない

395 :Name_Not_Found:2015/08/27(木) 12:20:14.49 ID:???
Fx, GC は最新版だけサポートすれば良いけど、IE は Windows のバージョン毎にインストール可能なバージョンが異なるから気を使う存在だよね
2016/01/13に幾分楽になるとはいえ、MSはOSへの依存性を早めに解消して欲しいな

396 :Name_Not_Found:2015/08/27(木) 12:56:40.75 ID:???
IE6 と聞くと、

たいていの開発者は、イヤな顔をするはず

397 :Name_Not_Found:2015/08/27(木) 18:38:11.90 ID:???
<ul></ul>の中に数個のボタンを置いて、
var buttons = document.getElementById("ul_ID");
buttons.addEventListener("click", function (e) {
  ...
});
なら上手く行くんですが、
var buttons = document.getElementById("ul_ID").getElementsByTagName("BUTTON");
のようにボタンに限定すると addEventListener がエラーするんですが、何故ですか?

398 :Name_Not_Found:2015/08/27(木) 18:41:07.93 ID:???
getElementsByTagNameの返り値がNodeListだからかな

399 :Name_Not_Found:2015/08/27(木) 18:44:03.50 ID:???
>>398
ありがとうございます。
なるほど。ではそのNodeListにaddEventListenerするには
ループで回すしかないですか?
何か一発で全部のボタンにaddEventListenerする方法ありますか?

400 :Name_Not_Found:2015/08/27(木) 18:59:28.94 ID:???
<ul>に関数を登録して、関数の中でe.target.tagNameを調べてやるといい。
var buttons = document.getElementById("ul_ID");
buttons.addEventListener("click", function (e) {
if(e.target.tagName != "BUTTON") return; // <button> 以外をクリックしたときは何もしない
alert("ボタンをクリックしました!");
});

もちろん、ループで回してもいいし、jQueryとかのライブラリを使って一気に登録してもいい。

401 :Name_Not_Found:2015/08/27(木) 19:02:19.00 ID:???
>>400
なるほど。有難うございました。

402 :Name_Not_Found:2015/08/27(木) 19:12:29.79 ID:???
>>401
どうも。
ただし、<button><img src="hoge.jpg"></button>みたいに、中に別のタグを入れるつもりなら、ちょっとコードが複雑になるので注意。
var buttons = document.getElementById("ul_ID");
buttons.addEventListener("click", function (e) {
var elm = e.target;
do {
if(elm.tagName == "BUTTON") break;
if(elm == this) return;
} while(elm = elm.parentNode);
alert("ボタンをクリックしました!");
});

こんな面倒なことをするぐらいなら、ループやライブラリの方がいいと思う人もいるかもしれないが、それはそれぞれのお好みで。

403 :Name_Not_Found:2015/08/27(木) 19:49:53.59 ID:???
こういう用途はjQueryを使うのが一般的

例えば、最初の例だとこれだけでいいし、
$("#ul_ID").click(function (e) {
  ...
});

ボタンそれぞれにハンドラを指定する場合はこれでいい
$("#ul_ID BUTTON").click(function (e) {
  ...
});

404 :Name_Not_Found:2015/08/27(木) 19:56:04.11 ID:???
>>400と同じようにするにはこれ。

$("#ul_ID").on('click', 'BUTTON', function (e) {
  ...
});

この書き方は、イベントハンドラを一つだけ設定して
"BUTTON要素のみ" というフィルタを書ける。
つまりボタンそれぞれにハンドラを指定する場合より効率的。

405 :Name_Not_Found:2015/08/27(木) 21:50:09.88 ID:???
あの、関連して質問なのですが、このようにしてbuttonにclickイベントを割り当てることは出来たのですが、
その後、ulに新しいbuttonを
var ul = document.getElementById('ul_ID');
var li = document.createElement('li');
ul.appendChild(li);
li.innerHTML = '<button>新しいボタン</button>';
で追加したら、このボタンにはclickイベントを割り当てていないにもかかわらず
既存のボタンと同じイベントハンドラ関数が呼ばれるんですが、
そういう事って有り得ますか?
それとも私何かおかしな事やっていますか?

406 :Name_Not_Found:2015/08/27(木) 23:14:03.23 ID:???
ボタンの親要素にイベントリスナー付けてるってオチかな
試しに>>2の投稿サイトに再現コードあげてみ

407 :Name_Not_Found:2015/08/27(木) 23:38:52.38 ID:???
>>405
>>400のコードを書いてるのではなくて?
イベントバブリングでぐぐって

408 :Name_Not_Found:2015/08/28(金) 00:09:43.92 ID:???
>400のコードを書いてるのではなくて?
そのコードでや自作のコードやいろいろ試しましたが全部同じ症状です。
>イベントバブリングでぐぐって
調べてみます。
ありがとうございました。

409 :Name_Not_Found:2015/08/28(金) 16:54:25.66 ID:???
(function(window, document, undefined) {'use strict';
})(window, document);

これの意味を教えて下さい

410 :Name_Not_Found:2015/08/28(金) 17:09:16.83 ID:???
>>409
window, document をローカル変数化しています。

411 :Name_Not_Found:2015/08/28(金) 17:49:13.86 ID:???
>>410
それは見ればわかる

412 :Name_Not_Found:2015/08/28(金) 18:34:17.44 ID:???
>>409
例えばdocumentの代わりにcreateDebugProxy(document)を渡せる

413 :Name_Not_Found:2015/08/28(金) 18:44:06.65 ID:???
windowとdocumentに関しては、スコープチェーンを辿らずに済ますためじゃね

414 :409:2015/08/28(金) 19:01:29.53 ID:???
>>410-413
レスありがとうございます。
>>410
ローカル変数化というのは2行目の(window, document)のところでしょうか?
1行目のundefinedがここに含まれてないのはなんででしょう?
>>412-413
すみません、どういうことか理解できませんでした。
>>409のブロック外でwindow.a=100とやったのがこの関数内でwindow.aを呼び出しても100にならないといった感じでしょうか?

415 :Name_Not_Found:2015/08/28(金) 20:32:50.75 ID:???
>>413
流石にそんなわけはないだろう
スコープチェーンを1個辿るのとDOMAPIの実行時間は蟻と象くらい違うだろうに

416 :Name_Not_Found:2015/08/28(金) 21:46:55.23 ID:???
これって、実践的なJavaScriptをやってないと
気づきにくいところだろうね。
例の仕様馬鹿には理解できない。

これはね、ミニファイした時に効果があるんだよ。
ミニファイっていうのは、JavaScriptコードの圧縮のこと。

window, documentがローカル変数になっているので、
ミニファイによってwやdなどの短い変数に置き換えることが可能になる。

可読性維持のため、別の名前にはしたくない。このやり方ならば、
同じwindowやdocumentでありながら、コードがミニファイ可能になる。

undefinedも同じ理由。ただ少し違うのは引数で値を渡さなかった変数は
自動的にundefinedになるから、渡していないだけ。

そしてこれはundefined(という名前の変数)にundefined以外の値を入れられる古いブラウザの問題
(例えばvar undefined = 1みたいなコード)への対応コードでもある。
言い換えると、この関数内では typeof a === "undefined" などというコードは不要ということでもある。
a === undefined とかけばい良い。

417 :Name_Not_Found:2015/08/28(金) 22:20:41.16 ID:???
>>416
>>(例えばvar undefined = 1みたいなコード)への対応コードでもある。
そんなことすることはありえないし、
ありえるのならクロージャ内で絶対書かれないとも限らないでしょ
むしろせっかく今のブラウザはグローバルundefinedは書き換え不能にしてくれてるのに
わざわざ書き換え可能にする愚行でしょ

418 :Name_Not_Found:2015/08/28(金) 22:27:36.61 ID:???
>>417
> わざわざ書き換え可能にする愚行でしょ

その愚行を他人がやった場合の対策ですよ。

自分はやらないから、自分の担当範囲のコード、
つまり
(function(window, document, undefined) {'use strict';
})(window, document);
の中に関しては愚行をしないと断言できる。

この関数の外側、しかも別のファイルとか、
そういう所でやるようなコードがあった場合の対策。

419 :Name_Not_Found:2015/08/28(金) 22:48:27.12 ID:???
>>418
> その愚行を他人がやった場合の対策ですよ。
どうやって他人がやるの?
>>417のいってることを本当に理解してるのかな

420 :Name_Not_Found:2015/08/28(金) 22:50:42.14 ID:???
>>419
例えば他人が作成したライブラリを使う時。

421 :Name_Not_Found:2015/08/28(金) 22:58:53.31 ID:???
>>420
ライブラリがどういうコードで書き換えるの?

422 :Name_Not_Found:2015/08/28(金) 23:12:35.55 ID:???
undefined = 1 で書き換えられるよ。
これを防げるのは一部のブラウザのみ。

423 :Name_Not_Found:2015/08/28(金) 23:24:38.35 ID:???
>>422
書き換え不可能な実装の話をしているんだろうに
しかも、一部のブラウザって…
今では下記か不可能なブラウザの方が多い

424 :Name_Not_Found:2015/08/28(金) 23:26:45.36 ID:???
>>423
だれが書き換え不可能なブラウザ限定の話をしてるんだ?

425 :Name_Not_Found:2015/08/28(金) 23:28:52.89 ID:???
もともとのレスを見ればわかるが、

> 409 名前:Name_Not_Found[sage] 投稿日:2015/08/28(金) 16:54:25.66 ID:???
> (function(window, document, undefined) {'use strict';
> })(window, document);
>
> これの意味を教えて下さい

>>409はこの書き方の意味がわかっていない。

そのコードを書いた人が何故そうしているか?って
話なわけで、このスレにはそのコードを書いた人は出てきていない。

だから、書き換え不可能なブラウザ限定のコードかどうかも
わからないずだし、書き換え不可能ならこんな書き方する必要ないじゃないか?

426 :409:2015/08/28(金) 23:40:36.58 ID:???
すみません、>>425さんの仰る通りで目が点になってましたw
ちょっと自分の理解をあまりにも超えているので出直してきます。
ちなみにこのコードはangular.js内に記述されていたものです。

427 :Name_Not_Found:2015/08/28(金) 23:43:49.00 ID:???
>>424
あなたが反応した>>417だよ
「書き換え可能にする愚行」をあなたは var undefined = 1; と解釈したけど、>>417のいう愚行は明らかに違う
こういうコードを初心者は参考にすべきじゃない

428 :Name_Not_Found:2015/08/29(土) 00:01:25.57 ID:???
>>427
お前一体何の話してるの?
俺は、>>409のコードの説明をしている。
>>409のレスは、>>417のレスよりも先に書き込まれたわけで、
>>417が勝手に限定するなって話をしているんだけど?


>>426
> ちなみにこのコードはangular.js内に記述されていたものです。

pass undefined through fn closure for better minification
https://github.com/angular/angular.js/commit/5432dd289a38a43fc5db35a30b68c2a5b0dd169e#diff-7a6ff2e16243e4cf3794dfe042beccaf

どうやらミニファイが理由であっているみたいね。

429 :Name_Not_Found:2015/08/29(土) 00:09:21.77 ID:???
var character = {
'<': '&amp;lt;',
'>': '&amp;gt;',
'&amp;': '&amp;amp;',
'"': '&amp;quot;'
};
ってgood partsに載ってるのですが、
プロパティ名の文字列ってシングルクォートで囲まれたダブルクォーテーション"
ってエスケープが必要なので'\"'ではないかと思うのですが、
'"'でもOKな理由って何でしょうか?

430 :Name_Not_Found:2015/08/29(土) 00:12:21.91 ID:???
>>428
君こそ記憶障害なの?

>>418
> > わざわざ書き換え可能にする愚行でしょ
> その愚行を他人がやった場合の対策ですよ。
「書き換え不能にしてくれてるのに わざわざ書き換え可能にする愚行」を他人がやった場合の対策だよね
>>422で書き換え可能に出来てないんだけど?

431 :Name_Not_Found:2015/08/29(土) 00:14:16.80 ID:???
>>430
> 「書き換え不能にしてくれてるのに わざわざ書き換え可能にする愚行」を他人がやった場合の対策だよね

違う。


説明した方がいい?話わかってないのが確定したから
もう「違う」の一言で終わらせたいんだけどw

432 :Name_Not_Found:2015/08/29(土) 00:21:44.09 ID:???
>>431
「その愚行」と指示語を使っている時点で>>417のいう愚行を指している以外にあり得ないと思うけど、釈明したいなら好きにすれば?
君の日本語が不自由なのは確定してるけど

433 :Name_Not_Found:2015/08/29(土) 00:26:58.89 ID:???
>>409>>414,426を見る限り、「コードは読めるが、どういう理由でこのコードが書かれているのか理解できない」というレベルではない
おそらく、即時関数そのものが理解出来てないのだろう

---
// 即時関数
(function (hoge) {
alert(hoge); // 1
}(1));

// 名前付き関数
function sample (hoge) {
alert(hoge);
}
sample(1);
---

2つのコードが同じ意味であることを理解できれば解決すると思われる

434 :Name_Not_Found:2015/08/29(土) 00:28:40.92 ID:???
即時関数がわかってなかったら、
そういうレスにはならんだろw

435 :Name_Not_Found:2015/08/29(土) 00:29:36.13 ID:???
>>432
俺は>>409のコードの説明をしている。
君が書いたコードの話はしていない。

436 :Name_Not_Found:2015/08/29(土) 02:17:54.36 ID:???
>>435
俺が書いたコードの話なんかしてないけど、君は話を逸らすのが好きだね
君が>>418で見当違いの返答をしたことは分かったからもういいよ
素直に>>409だけにレスしていれば恥をかかずに済んだだろうに

437 :Name_Not_Found:2015/08/29(土) 04:08:09.14 ID:???
もういいから、
質問者をおいておいて回答者同士で争うなって言ってるだろ

438 :Name_Not_Found:2015/08/29(土) 05:09:04.10 ID:???
http://peace.2ch.net/test/read.cgi/hp/1410603104/
http://peace.2ch.net/test/read.cgi/hp/1418395948/
http://peace.2ch.net/test/read.cgi/hp/1422084185/
http://peace.2ch.net/test/read.cgi/hp/1423910471/
http://peace.2ch.net/test/read.cgi/hp/1423913913/
http://peace.2ch.net/test/read.cgi/hp/1427008867/
http://peace.2ch.net/test/read.cgi/hp/1436400138/
http://peace.2ch.net/test/read.cgi/hp/1439005423/
重複スレw
こんだけあんだから回答者同士の議論は古いところから消費していきゃいい

439 :Name_Not_Found:2015/08/29(土) 05:37:16.80 ID:???
余っていれば何に使ってもいいというわけではない
議論したければ新しいスレを立てろ

440 :Name_Not_Found:2015/08/29(土) 08:33:55.11 ID:???
>>414ではおぼつかないレスだし、>>433が正解かな

441 :Name_Not_Found:2015/08/29(土) 13:49:41.98 ID:???
>>440
質問者ですが、即時関数自体はわかっています。

442 :Name_Not_Found:2015/08/29(土) 14:51:30.40 ID:???
>>429
JSについては詳しく知らないけど、Rubyだったかな?では、

ダブルクォーテーションは、シングルクォーテーションで囲む。
逆にシングルは、ダブルで囲むと、
エスケープ文字(\)がいらないのでは?

443 :Name_Not_Found:2015/08/29(土) 15:44:34.43 ID:???
xmlhttprequest では リダイレクトに対応できないんでしょうか?

444 :Name_Not_Found:2015/08/29(土) 16:13:36.32 ID:???
>>443
リダイレクトは自動的に受理される。
その結果のURLはxhr.responseURLで取得できる。

445 :Name_Not_Found:2015/08/29(土) 18:51:16.46 ID:???
>>441
もう少し、分からない部分を具体的に質問した方がいいと思う
>>409では何がわからないのか分からない

446 :Name_Not_Found:2015/08/29(土) 19:02:33.10 ID:???
>>442
他で回答を得たのでもういいです
http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q14149643594

447 :Name_Not_Found:2015/08/29(土) 21:52:31.00 ID:???
>>444
ありがとうございます。
よくわかってないのですが、短縮URLはリダイレクトとは別でしょうか。

448 :Name_Not_Found:2015/08/29(土) 23:12:04.95 ID:???
ブラウザ(ie、chrome、ff
など)のタブが何個開いていて各タブが開いているurlのアドレスなどjsで取得出来ますか?
さらにその中のどれかのタブをアクティブにして新しく別のurlを開くなどもjsで可能でしょうか?

449 :Name_Not_Found:2015/08/29(土) 23:16:24.18 ID:???
無理

450 :Name_Not_Found:2015/08/30(日) 00:02:58.18 ID:???
window.globalStorageってすでにfirefoxの最新では消えてなくなっていた
光のように早かったな。
っでさ、ブラウザ判定にwindow.globalStorageを使用してコードさ
window.globalStorageの代わりに何を使って
opreraかfirefoxって判定したらいいですか?
if(jQuery.support.checkOn && jQuery.support.noCloneEvent && window.globalStorage){
alert('あなたがお使いのブラウザはFirefoxっぽいです');
}else if(jQuery.support.checkOn && jQuery.support.noCloneEvent && !window.globalStorage){
alert('あなたがお使いのブラウザはOperaっぽいです');
}
https://w3g.jp/blog/jquery_browser_sniffing

451 :Name_Not_Found:2015/08/30(日) 00:40:43.04 ID:???
>>450
Firefoxだけが持っている非標準の機能なんて腐るほどあるので、お好きなのでどうぞ。
http://kangax.github.io/compat-table/non-standard/

var isFirefox = !!window.uneval;
alert(isFirefox); // Firefox なら true

452 :Name_Not_Found:2015/08/30(日) 00:49:35.51 ID:???
window.operaとか

453 :451:2015/08/30(日) 00:50:08.72 ID:???
ただしほとんどの場合において、そもそもブラウザを判定して処理を分岐させるのはお勧めできない。
使いたい機能があるかどうかで分岐を行うべき。
jQuery.browserが非推奨→廃止になったのもそれが理由だ。
なので、用途をよく考えて使ってくれ。

454 :Name_Not_Found:2015/08/30(日) 00:59:13.29 ID:???
>>452
window.operaをoperaでやってみるとundefinedでした。
>>453
分かりました。ブラウザ毎でなく、機能毎の分岐なんですね。
jQuery.browerの廃止の理由がそれだったんですね。
ライブラリはjQuery.browerを使用していたので、
ブラウザ毎でなく、機能毎の処理に書き換えて改造してみます。

455 :Name_Not_Found:2015/08/30(日) 09:17:43.54 ID:???
>>449
なぜ?

456 :Name_Not_Found:2015/08/30(日) 09:31:18.76 ID:???
>>455
常識w

457 :Name_Not_Found:2015/08/30(日) 11:48:32.60 ID:???
>>456
じゃあどうすればいいのかな?

458 :Name_Not_Found:2015/08/30(日) 11:54:35.01 ID:???
>>457
ないものねだりしても仕方ないとは考えられませんか。
どうしてもクライアントサイドでやりたいのならばブラウザの拡張機能を使えば実現できるかもしれませんね。

459 :458:2015/08/30(日) 12:10:30.60 ID:FRtsap9G
訂正します。
window.postMessage を使えば自分の管理下サイトの window を参照可能ですね。

460 :Name_Not_Found:2015/08/30(日) 12:55:08.83 ID:31KwAeNC
きれいなコードの書き方を知りたいです。
一年ほどプログラムの勉強をして、javascript、PHPを触り、googleAPIなども触れるようになってきました。
単純に動くものは作れるようになってきたのですが、もっときれいなコード、一般的なコードの書き方も覚えたいと思います。
(また、テンプレを使うと読みにくくなったのであえて使いませんでした)

汎用的なfunctionの定義は、body.onloadの中に書くべきでしょうか、あとに書くべきでしょうか?
それとも、別ファイルにした方がいいでしょうか?
例えば数値をカンマ三桁区切りにするfunctionがあります
function separate(num){
return String(num).replace( /(\d)(?=(\d\d\d)+(?!\d))/g, '$1,');
}
こういうのは
document.body.onload = function(){
};
の中か、外か、どちらのほうがいいでしょう。別ファイルのほうがいいのでしょうか。
また、こういうコードの書き方の教科書みたいなものは、ありますか?

461 :Name_Not_Found:2015/08/30(日) 21:51:39.18 ID:???
どっちでもいい
おまえがきめることでひとにきくことじゃない

462 :Name_Not_Found:2015/08/30(日) 21:52:41.29 ID:31KwAeNC
>>461
指標みたいなのがあるかと思っていました。ありがとうございました。

463 :Name_Not_Found:2015/08/30(日) 21:59:43.95 ID:???
>>462
漢字を知らない馬鹿の言う事は無視するのがいいよ

464 :Name_Not_Found:2015/08/31(月) 01:15:41.18 ID:???
>>460
定義の仕方一つとっても幾らでも書き方がある。
https://jsfiddle.net/L27Lss5L

好みの問題だから、それこそ>>461の言うように自由に書けばいい。
それと、きれいなコードとは違うけど、Google JavaScript Style Guideを読むと参考になるかも。

465 :Name_Not_Found:2015/08/31(月) 02:11:44.14 ID:???
致命的な欠陥のある書き方でなく、一貫性があればなんでも良いんだよ。
仕事でやるならプロジェクトごとにコーディング基準書があるからそれに従えば良い。
多少の記述ブレは開発環境の自動整形機能で補正されるし。

自分としては多少効率が上がろうとも、言語固有の記述方法はできるだけ避けるようにしている。
可読性、移植性を考えれば当たり前だけど。
処理速度については、適切なアルゴリズムを使えばほぼ問題にならない。
あとは、呼び出し頻度の高いコードだけ例外的に言語最適化する。
20世紀にかかれたBASICの入門書が俺の軸になっている。

どうしても権威のある人の記述法が知りたければ、オライリー本に多数あるよ。「○○クックブック」とか

466 :Name_Not_Found:2015/08/31(月) 05:02:37.38 ID:???
> 自分としては多少効率が上がろうとも、言語固有の記述方法はできるだけ避けるようにしている。
> 可読性、移植性を考えれば当たり前だけど。
それはだめだな
言語かえることなんて無いし、
その言語を使う意味もなくなる。

467 :Name_Not_Found:2015/08/31(月) 09:31:04.93 ID:???
>>460
teratail で似たような質問がありましたね。
標準的な書き方があるわけではないのでスタイルガイドやコーディング規約を読んでよいと思えるスタイルを取り込んでいけばよいと思います。

綺麗なコードの書き方を教えてください(15125)|teratail
https://teratail.com/questions/15125

468 :Name_Not_Found:2015/08/31(月) 09:37:53.34 ID:???
【環境】Windows7+Chrome
selenium-webdriverでページ中のリンクURLの一覧を取得したいのですが、
以下のコードでオブジェクトの内容(?)みたいなものがずらっと出力されます
aタグのhref属性の値だけを抽出したいのですが、ヒントをいただけないでしょうか

var webdriver = require("selenium-webdriver");
var driver = new webdriver.Builder().withCapabilities(webdriver.Capabilities.chrome()).build();
driver.get("http://server/path/");
driver.findElements(webdriver.By.tagName("a")).then(function (elements) {
for (var i = 0; i < elements.length; i++) {
console.log(elements[i].getAttribute("href"));
}
});

↓実行結果
C:\>node test.js
{ closure_uid_xxxxxxxxx: xxxx,
flow_:
{ events_: {},
closure_uid_xxxxxxxxx: 1,



469 :Name_Not_Found:2015/08/31(月) 16:12:16.91 ID:???
>>460
一言でどちらが良いという事はできない。
他のいろいろな状況と考えて、見やすい、分かりやすいと思う書き方をすべき。

470 :460:2015/08/31(月) 18:42:31.25 ID:v+RNH0wI
>>460
です、みなさんありがとうございました。
色々調べて、自分にあったやり方を見つけたいと思います。

471 :Name_Not_Found:2015/08/31(月) 18:54:56.28 ID:???
クライアントサイドのJSのコードって、
現実的に何万行くらいが実用上の目安(開発側と使う側の両方の立場で)とかありますか?
100万行くらいのコードが有ったとしても動くとは思うんですが、
読み込みも時間掛かるだろうし、メンテナンスも大変だろうから。
ソースが複雑になった場合、どういう対策がありますか?

472 :Name_Not_Found:2015/08/31(月) 19:11:21.26 ID:???
たまにしか使わない部分は遅延ロードするとか。
でもそういう大アプリならロードがあっても皆我慢してくれるよ。

473 :Name_Not_Found:2015/09/01(火) 01:07:16.02 ID:???
JavaScriptでチャット機能を作ることはできますか?

イベントハンドラでエンターを押した事を判定すればできそうな気が。

474 :Name_Not_Found:2015/09/01(火) 06:42:28.36 ID:???
エンターを押したかどうかの判定はJacaScriptでもできるが、
チャットの主幹部分はサーバーサイドなので、
「JavaScriptで作れる」というのはちょっと違う気がする。
むしろJavaScriptなんかなくても作れる。

475 :Name_Not_Found:2015/09/01(火) 07:18:09.04 ID:???
WebRTCを使えばJSだけで可能だよ
但し相手の固定IPを把握しててファイアーウォールやルーターがなくて
SDPでっち上げの技術が必要だけど

476 :Name_Not_Found:2015/09/01(火) 10:44:33.45 ID:jq9dGR1k
質問です
ajaxで特定のページに非同期HTTPリクエストを実行してステータスコード200が返ってきたとします
このときアパッチのログにリクエストログは残るんでしょうか?

ようするに、ajaxの非同期通信でも普通に同期通信するときと同様にログは残るのかという質問です
ご回答よろしくお願いします

477 :Name_Not_Found:2015/09/01(火) 10:48:28.20 ID:???
送られるヘッダ等はページ遷移のときとほぼ同じだから残ると思うよ

478 :Name_Not_Found:2015/09/01(火) 18:00:30.54 ID:jq9dGR1k
>>477
ありがとうございます!
jsの質問じゃなくなってしまいますが、googleのアナリティクスにも
アクセスログとして反映されるんでしょうか

479 :Name_Not_Found:2015/09/01(火) 20:51:02.49 ID:???
漢字(人名)→ひらがな(カナ,ローマ字でも可)する方法教えろ教えてください。

480 :Name_Not_Found:2015/09/01(火) 20:55:16.47 ID:???
>>479
フリガナ情報は無いのか?

481 :Name_Not_Found:2015/09/01(火) 21:04:08.11 ID:???
>>480 無いんです。。。

482 :Name_Not_Found:2015/09/01(火) 21:55:21.46 ID:???
頑張って辞書作るかそういうAPI見つけてくるしかないんじゃない

483 :Name_Not_Found:2015/09/01(火) 22:32:22.83 ID:g+CE+5UF
>>479
山田→やまだ さんでん
どっちかわかんないしな
形態素解析apiがyahooにあるけど、回数制限、サービスの終了という恐怖がある
もし頑張って使いきれるならigoを使えば良い。

484 :Name_Not_Found:2015/09/02(水) 01:11:28.37 ID:???
ライブラリの中を読んで勉強してたのですが、
var show=function(x,d){
if(d){}else{}
}
show関数を、引数がshow(1,2)とshow(2)のように、呼ぶときの引数が2つと1つの
の2通りあったのですが、こういうやりかたって正しいのでしょうか?

485 :Name_Not_Found:2015/09/02(水) 03:24:50.83 ID:???
>>482
>>483 あざっす!
kuromoji.js勉強してみます!

486 :Name_Not_Found:2015/09/02(水) 04:10:53.70 ID:???
>>484
省略可能な引数という
よくあるやり方ですよ。

487 :Name_Not_Found:2015/09/02(水) 07:53:53.49 ID:???
ブログにいいねボタンを設置しているのですが、このボタンの表示処理の中で、like.phpへのアクセス時にhttpからhttpsにリダイレクトされているようです。
最初からhttpsにアクセスするようにして表示速度改善をはかりたいのですが、どのようにすれば良いでしょうか?

+ JavaScript の質問用スレッド vol.125 + [転載禁止]©2ch.net ->画像>13枚

いいねボタンを表示するためのコードは、以下のurlで「2015年5月以降も大丈夫〜」とあるものと同様です。
この場合、ユーザからは対処できないものですかね?

488 :Name_Not_Found:2015/09/02(水) 08:40:07.28 ID:???
リンク先をhttpsにすりゃいいんじゃね。JS知らんけど。

489 :Name_Not_Found 転載ダメ©2ch.net:2015/09/02(水) 19:59:11.74 ID:???
うpロダを作ったのですがUIが使いにくい物になってしまいました。
jsでこれをもっと使いやすくする事はできますかね?
http://upupup.esy.es/

490 :Name_Not_Found:2015/09/03(木) 11:06:40.75 ID:???
今の感じのままでもCSSやHTML5 Formを上手く使えば十分な見た目にはなる。
それ以上ならファイルを選択するとその画像のCanvasが出て、文字位置をDnDで動かせるようにし、
その完成画像をアップロードするようにする。ついでに鯖コード削減にもなる。
また、カラーや大きさは細かく指定できる必要がないので何個かラジオボタンで選べる程度の方がいい。

491 :Name_Not_Found:2015/09/03(木) 13:48:53.73 ID:???
クライアント側でチャットを実装するとIP直指定のIP Messangerみたいだな
お互いにポート解放してないと出来ないし、一般利用者には敷居が高すぎるな…

492 :Name_Not_Found 転載ダメ©2ch.net:2015/09/03(木) 17:53:55.06 ID:???
イベント処理が出来ません。何故でしょうか?
$(function() {
//サイズBOX
$('#size').onchange(function(e) {
$("#move").css("font-size",$(this).val());
});

//色BOX
$('#t1').onchange(function(e) {
});

//xBOX
$('#x').onchange(function(e) {
});


//yBOX
$('#y').onchange(function(e) {
});
});

493 :Name_Not_Found:2015/09/03(木) 18:13:51.59 ID:???
>>492
答え教えてやってもいいけど、
その前に開発者ツールを開け。
エラーが出てるはずだ。

494 :Name_Not_Found:2015/09/03(木) 18:20:30.79 ID:???
>>492
>>1の(9)、>>5を読んで下記スレへ

JavaScript ライブラリ総合質問所 vol.4
http://peace.2ch.net/test/read.cgi/hp/1400834117/

495 :Name_Not_Found 転載ダメ©2ch.net:2015/09/03(木) 18:23:28.69 ID:???
>>493
開発者ツールと言うのはchromeのf12で出てくる奴の事でしょうか?

>>494
ライブラリ禁止ですか・・・すみません。
ただスレ落ちてて質問する場所がないのですがどうすればいいですか?

496 :Name_Not_Found:2015/09/03(木) 18:57:20.71 ID:???
>>495
>>494のスレは落ちてないように見えるのだけど

497 :Name_Not_Found 転載ダメ©2ch.net:2015/09/03(木) 19:16:41.09 ID:???
>>496
鯖落ちですかね・・・

498 :Name_Not_Found 転載ダメ©2ch.net:2015/09/03(木) 19:18:25.38 ID:???
あ、復活しました。

499 :Name_Not_Found:2015/09/03(木) 19:21:41.35 ID:???
>>495
そう。それのconsoleの所に
エラーの原因がでてるだろう?

500 :Name_Not_Found 転載ダメ©2ch.net:2015/09/03(木) 19:22:59.43 ID:???
>>499
エラー出ましたがどういう事でしょうか?
Uncaught TypeError: $(...).onchange is not a function

501 :Name_Not_Found:2015/09/03(木) 19:24:19.31 ID:???
>>500
書いてあるとおり、検索するか、
日本語に翻訳してみてくれるか?

502 :Name_Not_Found:2015/09/03(木) 19:51:05.83 ID:???
>>500
スレ違いだから続きは向こうのスレでやって欲しい

503 :Name_Not_Found:2015/09/03(木) 20:39:51.06 ID:???
ブラウザの開発社ツールの話なのだから
スレ違いじゃない。

504 :Name_Not_Found:2015/09/03(木) 20:50:03.28 ID:???
onchangeじゃなくてchangeじゃね?

505 :Name_Not_Found:2015/09/03(木) 21:06:35.68 ID:???
p.speed = p.speed ? p.speed * .1 : .5;
っあって、
alert(.1)//0.1だったので、
.1と.5って0.1と0.5のことだと思うのですが、
Javascriptって0.1の0を書かないでいいのですか?
でも、javascript lintで警告がでます。

506 :Name_Not_Found:2015/09/03(木) 21:10:07.36 ID:???
>>505
SyntaxError ではないが、人間が読みやすいコードではない

507 :Name_Not_Found:2015/09/03(木) 21:13:18.06 ID:???
>>502
console.log($("#x").onchange); // undefined
console.dir($("#x")); // 使用可能なプロパティ一覧
jQuery API Document を "onchange" で検索してもすぐに分かること
https://api.jquery.com/?s=onchange
これ以上はスレ違いだから余所でやって

508 :Name_Not_Found:2015/09/03(木) 21:19:11.38 ID:???
> Javascriptって0.1の0を書かないでいいのですか?
殆どの言語は0を省略できると思うけど?

プログラムのことを全く知らない親父(電気関連の仕事をしている)が
昔から0を省略して書いていたから、数学や電気関連の常識として0は
略できるものだと思っていたわ。

ちなみに電卓でも整数部が0の場合は、0を省略して入力してる。

509 :508:2015/09/03(木) 21:22:20.41 ID:???
なんかアメリカでは0を省略するほうが多い(一般的?)みたいだね。

https://en.wikipedia.org/wiki/.32_ACP
(適当にぐぐってヒットしただけ内容に意味は無い)

右らへんとか、普通に0を省略してる。

510 :508:2015/09/03(木) 21:23:39.90 ID:???
http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1379369883

ネイティブが小数点を読む場合、ポイントの前が0の時は
いつも省略して、0.5を「ポイント ファイヴ」と読むのが一般的です。

511 :Name_Not_Found:2015/09/03(木) 21:59:56.24 ID:???
>>506-510
ありがとうございます。
p.speed = p.speed ? p.speed * .1 : .5;
って英語圏の人間(多分)が作成したコードにあって
0の省略にすごく違和感を感じました、英語では普通なんですね。

512 :Name_Not_Found:2015/09/04(金) 00:04:19.52 ID:???
普通ではない。
あくまで省略記法。

513 :Name_Not_Found:2015/09/04(金) 11:45:58.80 ID:???
100を0100と書かないように0.1を.1と書いても別に違和感はないと思うが。

514 :Name_Not_Found 転載ダメ©2ch.net:2015/09/04(金) 17:56:29.94 ID:???
chromeで10px以下のフォントを使用したい時はどうすればいいでしょうか?
使用者に設定して貰う以外に製作者が設定したりは出来ませんかね?

515 :Name_Not_Found:2015/09/04(金) 19:36:49.19 ID:???
画像にすればいい

516 :Name_Not_Found 転載ダメ©2ch.net:2015/09/04(金) 19:51:01.49 ID:???
>>515
jsで文字から画像を作って出力出来ますかね?

517 :Name_Not_Found:2015/09/04(金) 20:00:47.60 ID:???
ユーザビリティ度外視の設計は実装が大変という典型だな…

518 :Name_Not_Found 転載ダメ©2ch.net:2015/09/04(金) 20:12:53.21 ID:???
http://notepad.cc/share/SK6tIrtWeC
ファイルが選択された時にreset関数を呼び出しているつもりなんですけど、何故か呼び出されない・・・何故ですかね?

519 :Name_Not_Found:2015/09/04(金) 22:42:07.48 ID:???
>>516
Canvasで適当なサイズで描いて縮小しろ

520 :Name_Not_Found:2015/09/05(土) 01:14:36.20 ID:???
>>513
0100は100と等価じゃないよ。

521 :Name_Not_Found:2015/09/05(土) 04:45:26.90 ID:???
>>520
解説ヨロ

522 :Name_Not_Found:2015/09/05(土) 05:19:12.64 ID:???
頭にゼロがつく数字は8進数として扱われるって奴か?

523 :Name_Not_Found:2015/09/05(土) 11:47:00.26 ID:???
var obj1 = {
  'data': {
    'data1': '1',
    'data2': '2',
  }
};
の特定のプロパティを変更したい場合、こんなふうに出来ますが
var obj2 = obj1;
obj2['data']['data1'] = '100';
そのあと、これを別の関数の引数に使うなら
myfunc(obj2);
のようにできますが、これをobj2という変数を使わずにobj1から直接どうにか作り出して

myfunc( { obj1から作り出したobject } );

のような書き方出来ますか?

524 :Name_Not_Found:2015/09/05(土) 12:35:53.89 ID:???
>myfunc( { obj1から作り出したobject } );
obj1を継承したオブジェクトを作って、差分を定義して
myfuncに渡したいなら

var obj3 = Object.create(obj1);
obj3.age=25;

myfunc(obj3)ってやればOK

それから
var obj2 = obj1;
obj2['data']['data1'] = '100';
ってやると、オブジェクトは参照渡しだから
console.log(obj1['data']['data1']);//100
console.log(obj2['data']['data1']);//100
ってなるけど、君が考えている挙動と違うかもしれないから気をつけて。

525 :Name_Not_Found:2015/09/05(土) 12:46:01.52 ID:???
>>523
>>524もいってるけど、 obj1['data']['data1'] = '100'; でどう?

526 :Name_Not_Found:2015/09/05(土) 16:55:11.51 ID:???
何が言いたいのか分からない。
オレオレ用語はやめて実際の期待する挙動を事細かに書け。

527 :Name_Not_Found:2015/09/05(土) 19:39:59.98 ID:???
なんか、過疎ってるな、
Javascript関連のyahoo知恵袋の、酷い質問と回答を晒そうぜ

528 :Name_Not_Found:2015/09/05(土) 19:44:05.24 ID:???
他人をあざ笑うためのレビューなら不要
技術的な語らいなら良

529 :Name_Not_Found:2015/09/05(土) 19:54:37.45 ID:???
Microsoft Edgeでプリンタ設定画面を抑えられないんだけど
IEと仕様変わったのな

keyコードで判定してpreventDefault呼んでるんだけど
表示されてしまう

530 :Name_Not_Found:2015/09/05(土) 21:00:27.24 ID:???
>>529
>>1の(6)

531 :Name_Not_Found:2015/09/05(土) 21:41:54.28 ID:???
>>527
最近は意外と無い。
知ったかぶりが減った。

532 :Name_Not_Found:2015/09/06(日) 00:05:10.59 ID:???
>>527
暇なら >>468 のヒントちょーだいよ

533 :Name_Not_Found:2015/09/06(日) 00:07:38.04 ID:???
>>468はライブラリの話題だから禁止。
JavaScriptに無関係な話はするな

それにしても、ここ過疎ってるな。
なんでだ?

534 :Name_Not_Found:2015/09/06(日) 03:51:41.20 ID:???
2chで質問するような馬鹿が減ったから

535 :Name_Not_Found:2015/09/06(日) 06:52:07.22 ID:???
>>532
そのライブラリは知らんが、ページ内リンクを全部抜き出しなら
phpのこれを使うといい
http://qiita.com/mpyw/items/85d1e23dc7c58f1014d1

目的は、どーせ、2chに貼られているエロ画像のurlを抜いて、
自動ダウンロードだろ

Javascript部分
Ajaxで1〜5分おきにphpでのページ内リンクの抜き出しを実行
するphpを読み込む(setTimeoutを使用)

php部分
ページ内リンクを取得し、urlの
jump.2ch.net/?とpinktower.com/は正規表現で置き換える。
h抜けは補完するように↑のphpのコードを改造すること
そして、抜き出して、正規表現で元のURLに戻したURLをresult.txtに書き込む

Javaの部分
result.txtに書いてある画像を無限ループでダウンロードする

★重要★
ブラウザの負荷を減らすため、phpでDLせずに、DLするURLを抜き出して
テキストに書き出すまではJavascript+phpで行い、実際のDLはJavaを
コマンドプロンプトで無限ループで実行させる

2chの画像集める2ch自動巡回画像ダウンローダってあるけど、
使いものにならんからな、自作するしかない。

536 :Name_Not_Found:2015/09/06(日) 07:10:46.18 ID:???
>>535
JavaScript以外の話題は禁止
クソスレはdat落ちさせろ

537 :Name_Not_Found:2015/09/06(日) 10:45:17.53 ID:???
>>535
ブラウジングの自動化が目的で、元々WSHでDOM使ってIEでやってたんだけど、
IEじゃ不都合があるサイトが出てきて、Chromeに切り替えようと思ったの

538 :Name_Not_Found:2015/09/06(日) 10:47:59.07 ID:???
>>537
それがどうかしたのか?

539 :Name_Not_Found:2015/09/06(日) 15:41:24.03 ID:???
>>538
うん
だから質問を投稿したんだよ

540 :Name_Not_Found:2015/09/06(日) 16:27:22.35 ID:???
何だかんだ言ってChromeが出た辺りのJS第二次ブーム世代が成長したことが
質問が減った原因だと思うな。

541 :Name_Not_Found:2015/09/06(日) 17:40:43.83 ID:???
あとは質問サイトが群雄割拠してるしな

>>537
Chromeで自動操作するなら拡張機能でコンテンツスクリプト書いたほうが楽なんじゃない

542 :Name_Not_Found:2015/09/06(日) 17:47:36.26 ID:???
Chromeの話題はスレ違いだから
今すぐやめるように

543 :Name_Not_Found:2015/09/06(日) 18:07:37.73 ID:???
var reader = new FileReader;
とかの、次世代のhtml5対応ブラウザに実装された機能の話題が
メインにJavascriptスレが進行していくと思ったら、
なんか、初心者の質問が結構多いな。
そういや、もうHTML5ってさ、Javascriptだけで、ライブラリ使用せずに
RPGゲームとか作れるんだっけ?

544 :Name_Not_Found:2015/09/06(日) 19:38:41.16 ID:???
>>543
ライブラリもJavaScriptだからライブラリで可能なことはJavaScriptでも可能
悪いけど、あなたの質問は初心者に見える
もっと具体的なところまで落とし込めばこのAPIを使うのが良いとかアドバイスが出てきてもおかしくないとは思う

545 :Name_Not_Found:2015/09/06(日) 21:03:19.57 ID:???
できる。と快適にできるは別だけどね。
確かにライブラリ無くても作れる。
だけど、ライブラリはそもそも"簡単に"作れるようにするもので
だからjQueryなどが普及した。

546 :Name_Not_Found:2015/09/06(日) 21:44:08.73 ID:???
>>545
それなら「できる」といわずに「快適にできる」といえばよかったし、「快適に」の度合いが主観的に過ぎるから「具体的に書け」といわれるんでしょう

547 :Name_Not_Found:2015/09/06(日) 22:11:14.29 ID:+zn/qva7
入力項目が幾つもあるフォームに対し、classやIDの設定に悩んでいます。
どういう風にclassやIDを設定するとわかりやすいでしょうか。

実際のコードは以下の様な感じです。
inputに数値を入力し、
buttonをclickするとinputの数値に対して計算をする、というプログラムです。
pの中身はinputが空の時の注意メッセージが表示されるとします

divかbuttonにclassを設定すると思いますが、どちらがいいでしょう。
なんとなくbuttonにclassを設定するほうが理にかなっている気もしますが、
divに設定して論理的に一塊として扱うほうがいいような気もします。
また、別の方法がいいでしょうか?ヤフーなどを参考にしてみましたが、とても読めませんでした
(難読化というものがされているようです)

<div>
<input type="number" name="core" value="">
<button>1つめを計算する</button>
<p class="hidden">数値を入力して下さい</p>
</div>

<div>
<input type="number" name="core2" value="">
<button>2つめを計算する</button>
<p class="hidden">数値を入力して下さい</p>
</div>

548 :Name_Not_Found:2015/09/06(日) 22:42:50.37 ID:???
>>547
入力項目はいくつ有るんですか?

549 :Name_Not_Found:2015/09/06(日) 22:47:21.69 ID:+zn/qva7
>>548
10ぐらいです。もしかしたらもっと増えるかもしれません。
身長体重や生年月日を入れて、BMIや占いなど一度に行えるサイトを作っています
※同じようなサイトは検索したらありました。折角なのでjsを覚えるためだけにコーディングしているところです・・・

550 :Name_Not_Found:2015/09/06(日) 23:01:14.27 ID:???
>>547
さすがに好きにすればいいんじゃないの?と思う
jsの質問でもなさそうだし

551 :Name_Not_Found:2015/09/06(日) 23:03:08.22 ID:+zn/qva7
>>550
そうですね、あんまりjs関係ないですよね・・・
ありがとうございました

552 :Name_Not_Found:2015/09/06(日) 23:17:05.58 ID:???
JS初心者でも扱いやすいって意味でのわかりやすさなら
各buttonにid振ってそれぞれにイベントリスナーで関数付けるのが簡単かな

553 :Name_Not_Found:2015/09/07(月) 01:54:07.21 ID:???
idを使うのはおすすめできないな。
一つしか存在するべきでない要素っていうのは
あまりないもんだよ。

554 :Name_Not_Found:2015/09/07(月) 02:45:20.54 ID:???
>>543
FileReaderを使うような人の質問にはここじゃまともな回答がつかないだろう。
難しい質問はしばしばあるけど総じてやり取りが長くなりがちで、
無視されるか、適当に返されて最後まで行って解決することは少ない。

そしてゲーム作りで一番向上したのは音を動的に作って鳴らすことと3Dだな。
これらはプラグインを使わなきゃ出来なかった。

555 :Name_Not_Found:2015/09/07(月) 06:57:39.10 ID:???
>>553
なんでもかんでもid振るといけないのか?

556 :Name_Not_Found:2015/09/07(月) 08:41:43.03 ID:???
IDは基本使わない方がいいと思う
全部classにすればok

557 :Name_Not_Found:2015/09/07(月) 08:45:10.70 ID:???
>>547
button要素が一つだけなら 上位ノードに click を定義して event.target.tagName === 'BUTTON' で判定すればいい
button要素が複数あるならbutton要素に class 属性を定義して判定すればいい

558 :Name_Not_Found:2015/09/07(月) 09:26:00.58 ID:???
ノードからアクセスする事もできるけど
必要ならID付けるべきだと思うけどな
単にID嫌いな人も居るみたいだけど

559 :Name_Not_Found:2015/09/07(月) 13:44:13.49 ID:???
イベント定義する都合上はclassの方が管理しやすいと思う
idを入れるなとはいわんが、この場合は必要性を感じないな

560 :Name_Not_Found:2015/09/07(月) 19:03:56.98 ID:???
対象が複数ならclassを使うし、単一ならidを使う
必要なら両方とも使う

561 :Name_Not_Found:2015/09/07(月) 19:20:55.21 ID:???
IDを付けることの良い点はJSからwindow[id]でアクセスできること

562 :Name_Not_Found:2015/09/07(月) 19:26:05.05 ID:???
idだとcssがすげーめんどくさくなるんだよな
css一切使わないならなんぼでもid使っていいんだけど

563 :Name_Not_Found:2015/09/07(月) 19:30:58.93 ID:???
1要素1idって何かにおいて重要なことだったきがするんだが
それが何かだったかが思い出せない

564 :557:2015/09/07(月) 20:24:43.63 ID:c1NuIfeD
>>547の事例なら id, class 共に使う
http://jsfiddle.net/u1jhn936/
id属性にはフラグメント識別子の役割もある為、全く使わないという事はない
(たとえ、リンクのターゲットとして指定されていなくてもURLハッシュとして使えるようにid属性値を割り振った方が便利な場合がある)
CSSでもidセレクタとclassセレクタは詳細度が異なるが、使いこなしは決して難しくはない

565 :Name_Not_Found:2015/09/07(月) 20:42:44.49 ID:???
idは一般的にはページ内でユニークなものであるが、
サイト内でユニークにした方がいい。
(どこまでを1サイトとするかって問題はあるが)

その理由をJavaScriptの点から言うと、
複数のHTMLのボタンにbtn1というidをつけたとしよう。
このbtn1にイベントを割り当てるならば、$('#btn1').click(・・・)となる。

だが、jsファイルを結合した時にページAとページB用の
$('#btn1').click(・・・)が混ざってしまう。

classであれば、前提として複数存在するものであり、
複数存在しても動くように作るのが一般的だから問題ない。
(ただしclassの意味はサイト全体で統一させる必要がある)

566 :Name_Not_Found:2015/09/07(月) 20:59:35.98 ID:???
他ページにも存在するのは id でも class でも変わらないし、CSS でも考えるべき事だ
id を危険視する理由にはならない

567 :557:2015/09/07(月) 23:15:18.30 ID:c1NuIfeD
あなたが複数のページで>>564の機能を使いたいと思ったのなら、あなたは同一IDを持つ同じHTML(>>564のHTML)をコピペして使いまわしても良い
URLが変わったからといって、#Calc-group1, #Calc-group2 のように id 属性値をユニークな名前を命名し直す必要はない
id も class も考え方は同じであり、同じ構造を期待するなら同じ名前を付ければ良い

568 :Name_Not_Found:2015/09/08(火) 00:11:22.84 ID:???
いや、違うページで同じことをすることはないでしょ?w

569 :Name_Not_Found:2015/09/08(火) 00:18:34.02 ID:???
>>568
なぜ「ない」といいきれるのかわからない
例えば、全ページ共通のナビゲーションバーをページ上端にあるデザインを考えた場合、#navigation を使いまわす状況はありうる
全ページ共通の機能があれば、同じ機能を使いまわす状況もありうる
>>564のスクリプトを使いまわすかどうかは知らないが、状況としては十分ありうる

570 :Name_Not_Found:2015/09/08(火) 00:27:33.88 ID:???
プラグインのcssの詳細度をごまかすために<body id="body">としたのは俺だけでいい

571 :Name_Not_Found:2015/09/08(火) 00:31:20.77 ID:???
同じ構造を使いまわすのは普通にやるけど、classだと使いまわせてidだと使いまわせないケースはないなー
idを使えない人は固定観念にとらわれているんじゃない?

572 :Name_Not_Found:2015/09/08(火) 07:21:54.07 ID:???
>>569
ナビゲーションバーならclassでよくね?
もしかしたらそのバーを下にも付けたくなるかもしれない。
検索ページで無限スクロールを実装するとなったら
途中に付けたくなるかもしれない

573 :Name_Not_Found:2015/09/08(火) 07:29:29.75 ID:???
サーバの転送量は1ヶ月で150GBとなっていて、結構危ない状態なのでコードを減らそうと思っています。
ほぼ値が1〜3桁の数値で構成されてるjsonをただの配列にした結果データが1/3になったのですが、
視覚的にコードがわかりにくいので出来ればこの手法は使いたくありません
なんか圧縮したデータをクライアント側で解凍して使うようなしくみとかjavascriptでありませんか?

574 :Name_Not_Found:2015/09/08(火) 07:37:43.45 ID:???
普通にgzip圧縮すればいい。
ウェブサーバーの設定だけで
後は何もする必要が無い。

575 :Name_Not_Found:2015/09/08(火) 07:38:11.83 ID:dQzx6q8c
javascriptでなく、より基礎的な部分のHTTPのルールとかでGZで転送できなかったか。

576 :Name_Not_Found:2015/09/08(火) 08:09:06.71 ID:???
Accept-Encoding送ってこないクライアントとかあるのかね

577 :Name_Not_Found:2015/09/08(火) 08:10:49.06 ID:???
jsonの代わりにMessagePackを使うって手もあったな。
まだ使われてるのかしらんけど。

578 :Name_Not_Found:2015/09/08(火) 09:17:28.99 ID:???
>>572
あなたがそう思うのならあなたの中では class なんだろう
でも、人によってはナビゲーションバーの中で重要なナビゲーションとして一つだけ #navigation を割り当てて他はnav要素でマークアップするかもしれない
結局、「製作者が対象を唯一の要素と見なすかどうか」が判断の節目
画一的に「こうあるべき」と決め付けられるものではない

579 :Name_Not_Found:2015/09/08(火) 09:28:12.50 ID:???
もうどうでもいいだろ
インデントの派閥と同じく正解なんて無い

580 :Name_Not_Found:2015/09/08(火) 18:41:56.79 ID:???
インデントと言えば、前までペギーパッドでJavascriptとhtmlを書いて、
インデントも手作業でやって、時間だけ食ってたが、
htmlとjavascriptのインデントとか自動で整形するサイト使って、
時間短縮してる。あんなもの手作業でヤルものじゃない。
皆さん、どうしてますか?
セキュリティの観点でこの整形するサイトって情報盗まれれる危険性とか
あるのでしょうか?私は、趣味でjavascripやってるので、情報盗まれても平気ですけど

581 :Name_Not_Found:2015/09/08(火) 19:14:51.65 ID:???
>>580
sublimetextかnetbeans
統合開発環境揃えたほうがいいよ。

582 :Name_Not_Found:2015/09/08(火) 20:11:25.25 ID:???
>>580
インデント機能ならそれこそブラウザにもあるじゃん

583 :Name_Not_Found:2015/09/08(火) 22:40:38.16 ID:???
>>580
atom使え。

584 :Name_Not_Found:2015/09/09(水) 12:35:20.89 ID:???
'use strict';

let a = 1;
function b(){
console.log(a);
}
b();

ブロックが違うのに何でb関数の中でaが使えるんですか?

585 :Name_Not_Found:2015/09/09(水) 20:10:22.41 ID:???
>>581
>>583
はい。導入を検討します

>>582
ブラウザのインデント機能って何ですか?

586 :Name_Not_Found:2015/09/09(水) 20:15:04.12 ID:???
>>584
そのaはグローバルスコープじゃん

587 :Name_Not_Found:2015/09/10(木) 06:25:08.24 ID:???
>>584
スコープチェーン

588 :Name_Not_Found:2015/09/10(木) 07:41:39.53 ID:???
>>586-587
お前ら説明下手だなw

589 :Name_Not_Found:2015/09/10(木) 08:23:12.42 ID:???
>>588の上手い説明に期待

590 :Name_Not_Found:2015/09/10(木) 08:28:13.30 ID:???
>>588の上手い説明に期待

591 :Name_Not_Found:2015/09/10(木) 08:35:18.74 ID:???
わくわくてかてか

592 :Name_Not_Found:2015/09/10(木) 10:26:05.78 ID:???
FirefoxでClipdboardに文字列をコピーしたいのですが、
最新の方法のキーワードを教えてケロ

593 :Name_Not_Found:2015/09/10(木) 11:22:48.00 ID:???
>>588
赤くしてやんよ

594 :Name_Not_Found:2015/09/10(木) 12:19:03.54 ID:???
ツイッターウィジェットで1ツイートづつスライドもしくは<maquee>のように動かすにはどうしたら良いですか?

595 :Name_Not_Found:2015/09/10(木) 12:23:57.17 ID:???
>>592
IE,FF,Chromeで文字列をClipBoardに書き込む方法を教えてケレ!

596 :Name_Not_Found:2015/09/10(木) 13:05:31.19 ID:???
>>594
ウィジェットでそういう使い方なんてしない
api使ってやれ

597 :Name_Not_Found:2015/09/10(木) 13:49:55.39 ID:???
>>596
api使ってやれと言われましてもわからないんです
例えばきゃりーぱみゅぱみゅのサイトのツイッター部分みたいなのが出来たら良いのですが

598 :Name_Not_Found:2015/09/10(木) 14:00:00.02 ID:???
わからないなら調べれば?

599 :Name_Not_Found:2015/09/10(木) 15:26:21.09 ID:???
>>585
開発者ツールで整形できるでしょ

600 :Name_Not_Found:2015/09/10(木) 23:42:02.25 ID:jdKISGJY
ローカルの自作htmlからajaxで、
インターネット上のサイトにアクセスしようとすると
クロスドメインで処理できなくなってしまうのですが、
対処方法ご存知のかたいないでしょうか。

いくつかのサイトの情報を自作html一画面内に一括表示したいのですが、うまく行きません。
プラグイン等でのソフトウェアのスクレイピング機能で実現するのは不可です。
(会社のセキュリティと自分でメンテしながら学習していきたいので)


ネットで調べる限り以下の方法があるようで、
@サーバサイドでAccess-Control-Allow-Originを設定
AFirefoxでabout:configでsecurity.fileuri.strict_origin_policy を false に設定
BGoogle Chromeで起動オプションに「--allow-file-access-from-files」を付加

@はサーバ設定はさわれないので不可
ABはためしたけど、変化なしでした

601 :Name_Not_Found:2015/09/10(木) 23:48:10.58 ID:???
>>600
ajaxとローカルはかなり相性悪い。
昔3にたどり着いたけど、そんなことするよりさっさとサーバーに上げて開発したほうがよっぽどいい
もし開発に手間取るようなら開発環境を揃えたほうが良い

602 :Name_Not_Found:2015/09/11(金) 06:12:29.84 ID:???
よく知らないけど、Python, Ruby とか、
Eclipse, Node.js などの開発環境にも、

WEBサーバが付いているのじゃ?

603 :Name_Not_Found:2015/09/11(金) 06:14:18.82 ID:???
EclipseはIDEで言語じゃあーりません

604 :Name_Not_Found:2015/09/11(金) 08:32:13.74 ID:???
>>603
そんな事より解決策教えろよカス

605 :Name_Not_Found:2015/09/11(金) 08:39:38.12 ID:???
>>600
4. Proxomitron 系の LocalProxy を使って外部ドメインを localhost 扱いにする
5. ローカルにWebサーバを立ててサーバサイドスクリプトに GET させる

606 :Name_Not_Found:2015/09/11(金) 08:47:15.94 ID:???
jsonpでやりとりするようにサーバ側をごにょごにょ

607 :Name_Not_Found:2015/09/11(金) 08:48:08.25 ID:???
>>600
迷惑なことするなカス

608 :Name_Not_Found:2015/09/11(金) 09:26:55.50 ID:???
大した手間じゃないんだから拡張機能にすりゃいいじゃんかよお

609 :Name_Not_Found:2015/09/11(金) 15:53:45.89 ID:???
.jsの呼び出しにユーザ固有の引数つけるのってどんな目的でやるもの?
内容を動的に変えるわけでもない場合で

610 :Name_Not_Found:2015/09/11(金) 16:05:37.23 ID:???
補足
記述的には例えば<script type="text/javascript" src="js/javascript-file.js?id=0251483" charset="UTF-8"></script>とか
使う引数の元ネタはcookie/sessionと紐付けてたりとかだいたいその辺

611 :Name_Not_Found:2015/09/11(金) 16:40:36.40 ID:???
>>609
jsファイルをアップデートした際、ユーザー側で強制的に再読み込みさせることが出来る
同じファイルの場合、キャッシュが効いていると読み込まれない場合があるからね

612 :Name_Not_Found:2015/09/11(金) 16:57:49.86 ID:???
>>611
ユーザ固有な引数にみえて実は全ユーザ共通のファイルごとのタイムスタンプな引数だったってパターンか
なるほどそういうパターンでパッと見は内容不変だと確かに目的はキャッシュコントロールっぽい

613 :Name_Not_Found:2015/09/11(金) 17:05:12.52 ID:???
>>612
そうそう、タイムスタンプ。俺はいつもunixtimeにしてるけどバージョンでもなんでもいい

614 :Name_Not_Found:2015/09/11(金) 18:33:45.41 ID:???
>>612
その通りだけど、本質的には If-Modified-Since ヘッダを正しく扱えば不要なものだよ

615 :Name_Not_Found:2015/09/11(金) 22:17:30.74 ID:???
ユーザ固有って前提条件はどこいったっていう話

616 :Name_Not_Found:2015/09/11(金) 22:32:14.96 ID:???
ユーザ固有ってのは単なる思い込みかと

617 :Name_Not_Found:2015/09/11(金) 22:56:15.73 ID:???
私がアクセスした時とあなたがアクセスした時で引数が異なるならユーザ固有と認めよう
その場合はユーザCSSの為の識別子としか思えないけど

618 :Name_Not_Found:2015/09/12(土) 02:54:00.33 ID:???
値を変えて取ってきてみればいいんじゃない?

619 :Name_Not_Found:2015/09/14(月) 17:37:52.15 ID:???
別スレより誘導されてきました
お願いします

スクロールしてもヘッダ(とcaption)は固定表示のtableを作りたいのですが、

・tableのwidthはパーセント指定
・theadのセルはwidth指定無し(可変)
・border-collapse: collapse

この条件だと、色々なチュートリアルサイトの方法やjQueryプラグイン等を試してもどうもレイアウトが崩れてしまいます

どうかアドバイスいただきたいです
お願いします!

620 :Name_Not_Found:2015/09/14(月) 17:56:08.17 ID:???
>>619
ヘッダの行固定なら CSS の position: fixed; で期待通りに動作するかと(JavaScrpt不要)
列固定だと JavaScript が必要だけど

621 :Name_Not_Found:2015/09/14(月) 18:03:22.91 ID:???
>>620
以前試してみたのですが、崩れてしまいます‥‥
多分テーブル幅%指定+セル幅可変だからだと思います

622 :Name_Not_Found:2015/09/14(月) 18:16:28.80 ID:???
>>620
画面いっぱいだといいけど。ヘッダがあった場合に中途半端な場所に固定されちゃうよぉ。

623 :Name_Not_Found:2015/09/14(月) 18:26:53.06 ID:???
>>622
tableの幅を100%で画面いっぱいにしてみましたが、ヘッダのセル幅が縮まっておかしくなりました
theadやthead trのwidthも100%にして合わせてみましたが無駄でした…

624 :Name_Not_Found:2015/09/14(月) 18:49:47.14 ID:???
効率悪いからソース晒せって。

625 :Name_Not_Found:2015/09/14(月) 19:32:22.75 ID:???
position: sticky;

626 :619:2015/09/14(月) 19:34:12.30 ID:???
>>624
失礼しました
こんな感じです
ちなみに、tbody部分がクリックでtoggleするように作ってます

<style>
table {
border: solid 1px #cccccc;
border-collapse: collapse;
margin-left: auto;
margin-right: auto;
}
th, td {
background-color: #ffffff;
border: solid 1px #cccccc;
height: 50px;
}
</style>

続きます

627 :619:2015/09/14(月) 19:34:39.43 ID:???
続きです

<table>
<caption>sample</caption>
<thead>
<tr>
<th>sampleH1</th>
<th>sampleH2</th>
<th>sampleH3</th>
<th>sampleH4</th>
</tr>
</thead>
<tbody>
<tr>
<td>sampleB1</td>
<td>sampleB2</td>
<td>sampleB3</td>
<td>sampleB4</td>
</tr>
</tbody>
</table>

628 :619:2015/09/14(月) 19:38:05.81 ID:???
>>626訂正


<style>
table {
width: 80%;
border: solid 1px #cccccc;
border-collapse: collapse;
margin-left: auto;
margin-right: auto;
}
th, td {
background-color: #ffffff;
border: solid 1px #cccccc;
height: 50px;
}
</style>

629 :Name_Not_Found:2015/09/14(月) 19:48:24.60 ID:???
tableを2つ使うのじゃだめなの?

630 :Name_Not_Found:2015/09/14(月) 19:51:17.63 ID:???
trのスタイルあらへんがな。

631 :619:2015/09/14(月) 19:55:47.44 ID:???
>>629
styleやscriptをごっそり書き直しになってしまいますので、できれば避けたいところです

>>630
お伝えするのには必要無いかと思い省いてます

632 :619:2015/09/14(月) 19:58:22.93 ID:???
>>629
あ、>>631は違いましたすみません

tableを分けてしまうとセルの幅が2つのtableで変わってしまいます
あくまでセル幅が可変である必要があるのです

633 :Name_Not_Found:2015/09/14(月) 20:52:44.98 ID:???
テンプレの>>2にコード投稿サイトがあるから
次からはそれ使うとええよ

634 :619:2015/09/14(月) 21:17:10.26 ID:???
>>633
すみませんでした
ご指摘ありがとうございます

635 :Name_Not_Found:2015/09/14(月) 21:39:50.38 ID:???
もう答えは十分に出てる
あとは自分でどうにかしろ

これ以上スレを汚すのだけは勘弁してくれ

636 :Name_Not_Found:2015/09/15(火) 08:22:46.86 ID:???
>>619
固定レイアウトではNGなのかね
http://jsfiddle.net/5em3kprL/

637 :Name_Not_Found:2015/09/15(火) 09:38:52.37 ID:???
可変レイアウトなら JavaScript が必要かもね
https://teratail.com/questions/15105

638 :Name_Not_Found:2015/09/15(火) 09:53:36.21 ID:???
このスレで聞く事じゃないかもしれないけど
最近独自プログラミングってなんでjavascriptベースが多いの?

639 :Name_Not_Found:2015/09/15(火) 10:34:53.80 ID:???
>>638
「独自プログラミング」とは?

640 :Name_Not_Found:2015/09/15(火) 12:10:57.99 ID:???
え、「独自プログラミング」も知らないの?

641 :638:2015/09/15(火) 12:39:15.22 ID:???
>>639
ごめん、独自プログラミング言語だった
GASもjavascriptだし、こんど出るRPGツクールもjavascriptに変更されるし
なんでかなーって

642 :Name_Not_Found:2015/09/15(火) 12:40:44.73 ID:???
知ってるのはお前だけ
なんだその「独自プログラミング」って、素人がだまされる新しいバズワードか?

643 :619:2015/09/15(火) 12:59:55.88 ID:???
投稿サイト使ってみました

position: fixedだとやはりセルがズレてしまいます

http://jsdo.it/42ch/yMht

644 :Name_Not_Found:2015/09/15(火) 13:45:30.78 ID:???
<>>641
JavaScriptをそのまま使える拡張言語なのにどの辺に「独自プログラミング言語」なのかと
しかも、「独自プログラミング言語」は一般化されてないオレオレ用語だし
altJS系の話かと思った

645 :Name_Not_Found:2015/09/15(火) 13:48:31.72 ID:???
>>643
>>636-637を参照

646 :619:2015/09/15(火) 17:20:32.59 ID:???
>>645
本当に申し訳ないのですが、実はもう一つ仕様がありまして…
別スレに書いたものをこのスレに書いたものと勘違いしていました

http://jsfiddle.net/b6x0Ln44/

tbody部分はtoggleするのです

647 :Name_Not_Found:2015/09/15(火) 17:29:33.68 ID:???
ライブラリやフレームワークの類を独自プログラミング言語と言ってるらしいってのはわかった
そんな言い回ししねーよってことで素人には優しくレクチャーしてやれよ

648 :Name_Not_Found:2015/09/15(火) 18:09:32.74 ID:???
組み込みスクリプトのことじゃないの?

649 :Name_Not_Found:2015/09/15(火) 18:57:26.95 ID:???
>>646
何がどう toggle するのか不明なので具体的に書いてくれ
情報後出しを悔いるなら詳しく
http://jsfiddle.net/5em3kprL/1/

650 :619:2015/09/15(火) 19:11:55.50 ID:???
>>649
言葉足らず失礼しました
jQueryでいうところのtoggleです
クリックでtbody部分の大部分をshow()とhide()でtoggleさせています
http://jsfiddle.net/b6x0Ln44/
のjavascript部分を参照していただければ…

ちなみに、http://jsfiddle.net/b6x0Ln44/ではその動作ができていません

651 :Name_Not_Found:2015/09/15(火) 19:31:39.01 ID:???
>>650
出来てないコードを見せて「分かれ」といわれてもわからん
>>649で tbody 全体を表示/非表示したが、それではダメなのか?

652 :651:2015/09/15(火) 19:33:52.90 ID:???
toggleはわかる
何をクリックした時に何の要素を表示/非表示したいのか、がわからん

653 :619:2015/09/15(火) 19:46:19.32 ID:???
>>652
何から何まで自分は本当に…すみません、そして本当にありがとうございます

コード書き直しました↓
http://jsfiddle.net/8xpc8ent/
この色のついている"line"というクラスのtrは残して、それ以外のtbody内のtrをtoggle show/hideするのが仕様なのです

654 :619:2015/09/15(火) 19:49:26.71 ID:???
>>652
でも、この教えてくださった固定レイアウトの方法だと、結局displayをnoneにする/しないだけなので、
要素の指定さえうまくできればなんとかなりそうですよね

ちょっと本番のページに落とし込んでみます

大変助かりました
心より感謝します、ありがとうございました

655 :619:2015/09/15(火) 19:55:38.01 ID:???
ちなみに固定レイアウトは使用上NGなのですが、なんとかヒントを元に頑張ってみます

656 :Name_Not_Found:2015/09/15(火) 21:21:58.04 ID:???
>>653
そんなにごちゃごちゃ書かなくても
これでいいけどね。

http://jsfiddle.net/8xpc8ent/1/

テーブルがopened状態かどうか?
として考えるのがコツ。

sample textのcolspanが効いてないような?
まあ別の問題だろうから、あとは適当に。

657 :Name_Not_Found:2015/09/15(火) 21:35:26.27 ID:???
「独自プログラミング」≒「趣味プログラミング」
かと思ってた

658 :Name_Not_Found:2015/09/15(火) 21:47:27.20 ID:???
>>654
一つの table にするのが不思議な構造だなー
アコーディオンメニューで実装した方が幸せになれる気がする

659 :Name_Not_Found:2015/09/15(火) 22:32:54.20 ID:aLwmIa8T
document.write('');って、(‘’)の中に改行や空白を作れないの?
たとえば

document.write(‘
<div class=“hogehoge”>hoge</div>
’);

みたいにすると管理しやすいし視認性がいいんだけど…
別の構文だとできるのか?

660 :Name_Not_Found:2015/09/15(火) 23:10:20.59 ID:???
それは文字列リテラルの制限
テンプレートリテラルを使うと良いよ

661 :Name_Not_Found:2015/09/15(火) 23:16:33.90 ID:???
>>655
固定レイアウトNGなら全てのやり取りが水の泡だぞw

662 :Name_Not_Found:2015/09/15(火) 23:22:26.41 ID:???
固定ではなくて追従でしょ

663 :Name_Not_Found:2015/09/15(火) 23:31:59.97 ID:???
ものは言いよう

664 :Name_Not_Found:2015/09/16(水) 00:08:02.57 ID:amq4Wq/h
>>660
そんなのあったんだ!初めて知った

document.write(`
<div class=“hogehoge”>hoge</div>
`);

ならできるってことか。
ありがとう!

665 :Name_Not_Found:2015/09/16(水) 00:57:51.22 ID:???
>>664
これはES6の機能。
IEなどサポートされてないブラウザがあるので
必然的にBabel等を使うことになる。
快適に使うならばビルド環境の整備が必要。

666 :Name_Not_Found:2015/09/16(水) 01:18:57.30 ID:???
テンプレートリテラルのためにBabelを使えと言う方が非現実的だろ。
FF/Ch/Edgeで使えるんだから別にコンバータが必須とは思えないし、
そこまで厳しく見るならまずdocument.write自体が半分禁忌みたいなものだな。

667 :Name_Not_Found:2015/09/16(水) 01:38:36.70 ID:amq4Wq/h
>>666
document.writeってダメなの?
ブログの記事下情報の整理に便利だから使おうと思ってるんだが…

668 :Name_Not_Found:2015/09/16(水) 04:24:33.44 ID:???
>>666
ほらどうする?ブログだってよ?w

他人が見る=相手が使うブラウザを限定できない。

このサイトはIEには対応していませんって
書くってことかい?
IEのみに対応していますの時代から全然成長してないな。
一般的に使われるブラウザぐらい対応するのが普通だろ。

669 :Name_Not_Found:2015/09/16(水) 04:26:14.10 ID:???
>>667
テンプレートリテラルを使うならば
IEや古いブラウザ、多くのスマホや
タブレットで動くのを諦めなさい。

もしくはBabelなどを使うか。

670 :Name_Not_Found:2015/09/16(水) 06:22:53.16 ID:???
最近はモバイル多いしIE切り捨てても全然ok
企業のHPでそれやるわけにはいかんが、そんなとこでJSを全開にすることもないしな

671 :Name_Not_Found:2015/09/16(水) 07:37:33.55 ID:???
>>668
そもそもJS切ってる人には表示されなくても良いようなものなんだから注意書きすら要らない。
そんなことを言い出したら古いゲーム機ブラウザやJS対応フィーチャーフォンを考えるとES3しか使えないしキリがない。

672 :Name_Not_Found:2015/09/16(水) 10:43:25.56 ID:???
>>671
勝手にお前が決めつけるなよ。

一般的に使われてるブラウザって言っただろ。
なんでそこで、あまり使われてないブラウザ持ってきて
反論しようとしてるんだかw

673 :Name_Not_Found:2015/09/16(水) 10:51:28.69 ID:???
「document.write 非推奨」と「ES6 非推奨」は全く異なるベクトルの話だな
前者は XHTML との相互互換性や XSS を入れ込みやすい安全上の問題
後者は古いブラウザのサポートに関する後方互換性の問題
dodument.write は古い API 故に後方互換性問題はないからな

674 :672:2015/09/16(水) 12:58:21.92 ID:???
念のため俺が言ってるのは
テンプレートリテラルの話ね。

ブラウザのシェアから言って
対応してない人のほうが多い。

675 :Name_Not_Found:2015/09/16(水) 13:18:19.17 ID:???
短い文字数で改行入れている人は小さな画面で改行位置を気にする性質なのか
無駄に縦に長くて読みづらい

676 :Name_Not_Found:2015/09/16(水) 13:27:58.15 ID:???
別に対して意味ないけどw
この程度で縦に長いって感じる人は
小さな画面で見てるの?って逆に思ったw

677 :Name_Not_Found:2015/09/16(水) 13:30:37.81 ID:???
読みづらいはいいすぎだけど、無駄に長いのは事実

678 :Name_Not_Found:2015/09/16(水) 13:30:50.85 ID:???
あえて言うなら視線を横に殆ど動かさないで
読める単位とか、文章の区切りかな。

ソースコードと一緒で横に長いのは
余り好きじゃないんだよね。

もちろん縦に長くなりすぎるのも
好きじゃないから縦に長くなった場合は横を伸ばす

679 :Name_Not_Found:2015/09/16(水) 13:34:50.61 ID:???
視線の横移動を嫌うならウインドウサイズを小さくすればいいだけ
こういう人は<br>を乱用して無駄に縦に長いWebページを作っているのと同じだな

680 :Name_Not_Found:2015/09/16(水) 13:36:35.31 ID:???
>>679
その理屈で言うと、なんで君、今書いたレスに改行入れたわけ?ってなるけどw

681 :Name_Not_Found:2015/09/16(水) 13:40:36.81 ID:???
>>680
おまえは「文末に改行を入れる」と「文中に改行を入れる」を同一視するのか
改行を全く入れるな、とはいわん

682 :Name_Not_Found:2015/09/16(水) 13:49:31.36 ID:???
>>681
段落は空行を一行開ける。
段落にしないのであれば文章を一行で書いていいんだよ?
だって改行されるんだから。
あと文末には丸を書きましょう。

683 :Name_Not_Found:2015/09/16(水) 13:56:19.16 ID:???
>>682
段落以外で改行を入れているお前が言っても説得力が皆無だな。

684 :Name_Not_Found:2015/09/16(水) 14:08:47.86 ID:???
>>682
俺は文中に改行を入れることを問題視してるんだよ。最も、無駄に段落を分けて空行を入れるのもどうかとは思うがな。

685 :Name_Not_Found:2015/09/16(水) 14:20:35.22 ID:???
そんな些細なこと、問題視する必要なくね?w

十行以上あるならともかく、別に縦に長いわけじゃないし。
そんなに小さい画面で見てたりするの?

なんでそんなに執拗に突っかかってくるのか理解できん。

686 :Name_Not_Found:2015/09/16(水) 16:18:48.58 ID:???
>>685
主張に一貫性がなさ過ぎて反論する気も失せたわ。

687 :Name_Not_Found:2015/09/16(水) 18:33:46.89 ID:???
>>686
一貫性がないところを具体的に指摘してみ。

688 :Name_Not_Found:2015/09/16(水) 18:49:48.60 ID:???









689 :Name_Not_Found:2015/09/16(水) 18:55:18.77 ID:???
しらねwwwwwwwwwwww なんか改行の位置が気に食わんかったらしいよwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww

690 :Name_Not_Found 転載ダメ©2ch.net:2015/09/16(水) 19:05:04.66 ID:???
ここ2chだぞww

691 :Name_Not_Found:2015/09/16(水) 23:11:31.12 ID:???
チラシの裏と自覚している人は底辺だから怖いもの無しだな

692 :Name_Not_Found:2015/09/17(木) 09:22:09.51 ID:???
別にどんな機能使ってもいいと思うよ。
理想はプログレッシブエンハンスメントだけど、
あまりに非力なブラウザの場合はしかたがないと思う。
例えば昔ケータイのフルブラウザでまともに見れないサイトがたくさんあり
Google検索さえも動作が怪しいの見てこりゃ意味ないなとは思ったものの、
それでも多少は使えたし、そのくらいで満足しないのは横暴だと思う。

同じように今IEを使ってる人に対して、ブログの記事下情報くらいがまともに表示されないという程度で
その機能を使うなと他人が言える程だとは思えない。
今まだIEを使ってる人はモダンブラウザに比べてやや劣ってるという状況を正しく理解させた方がいい。
古いブラウザもサポートするというといいことをしているようにも思えるが、
それは同時に無駄な延命をさせることになることを忘れてはいけない。
基本的にどうしてもサポートしなくてはいけない場合以外は手をかけるべきではない。

693 :Name_Not_Found:2015/09/17(木) 10:31:36.84 ID:???
>>692
お前はそれでいいよwwww

694 :Name_Not_Found:2015/09/17(木) 10:34:04.30 ID:399kiuDP
IEをサポートして当たり前と思うのは仕事に毒されてんだろうな
手段が目的化してしまっとる

695 :Name_Not_Found:2015/09/17(木) 11:09:11.55 ID:???
まぁIE9-10は2016年1月でサポート終了するしね

696 :Name_Not_Found:2015/09/17(木) 11:47:14.17 ID:???
ほんとに?
IE9までしか使えないVistaのサポートが2017年4月まであるんだがどうなるんだ

697 :Name_Not_Found:2015/09/17(木) 12:06:24.59 ID:???
あんまり関係なくね?
ブラウザとOSは独立なわけだし、
WindowsもMacみたいに実質OS無償アップグレードできる様になったじゃん。
そろそろEdgeが最低ラインだと言っていい頃じゃない?

698 :Name_Not_Found:2015/09/17(木) 12:10:29.35 ID:???
と言うのは言いすぎだけど、
Googleのポリシーのように、最新と1つ前までサポートするのが無難かな。
iPhoneアプリ界でもだいたい最新のOSが出たらその2つ前のバージョンは開発者は切るようになるっていうし。
だからIE11を最低ラインとするのが基本かな。
もちろん状況によってそこから上下するけど。

699 :Name_Not_Found:2015/09/17(木) 13:07:56.03 ID:???
>>695
切り捨てられるのはIE8だが。

>>697-698
IE は全ての Windows OS をサポートしないからOSの制約を受けることを知った方がいい。古いOSのIEユーザをどんどん切り捨てるなら好きにしたらいいが、他人に勧められるほどの強制力はないな。

700 :Name_Not_Found:2015/09/17(木) 13:32:21.26 ID:???
>>694
> IEをサポートして当たり前と思うのは仕事に毒されてんだろうな

仕事の話をしているかもしれないのに、
仕事に毒されてるってなんだよw

お前は仕事してないのか?

701 :Name_Not_Found:2015/09/17(木) 13:34:09.56 ID:???
> 手段が目的化してしまっとる

ES6をトランスパイラ使わないで動かすという手段が
目的になってしまってるってこと?w

702 :Name_Not_Found:2015/09/17(木) 13:35:26.72 ID:???
勧めるのに強制力がいるとは初めて知った
まあ今とこれからのシェア的にはIE8>IE11>IE9>IE10だから
IE8を切るならIE11だけに注力していいだろう
ES5的にもIE8は切りたいからIE11を基準としていいと思うぞ

703 :Name_Not_Found:2015/09/17(木) 14:42:55.70 ID:???
javascript学習サイトの質問ここでいいですか?

704 :Name_Not_Found:2015/09/17(木) 14:45:14.13 ID:???
なんか忘れているやつがいるようだが、
今話しているのはテンプレートリテラルを使うならば
Babelを使うのが現実的って話。

それに対して、どっかの馬鹿がいつもどおり
ブラウザネイティブで動かせとか噛み付いた。

テンプレートリテラルに対応してないのはこの表を見る限り
IE11以下、Safari、Android、Safari Mobileが全滅だ。
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/template_strings

切れるわけがないだろう?

だからBabelを使うのが現実的だと>>665で言ったとおり。
さらにBabelを使えば様々なES6の機能が古いブラウザでも動く。

705 :Name_Not_Found:2015/09/17(木) 14:57:37.93 ID:???
前のWebAPIやブラウザ自体もスレチ扱いしてるのと同様で
わざとここ過疎らせるために極論振りまいてるのがいるんじゃないかね

706 :Name_Not_Found:2015/09/17(木) 15:04:43.59 ID:???
>>696
VistaだとOSの延長サポート期限の2017年4月までIE9もサポートされるけど、
7はIE9-10、8はIE10がそれぞれ2016年1月でサポート終了するよ
http://www.atmarkit.co.jp/ait/articles/1503/11/news134.html

方針として、ベンダーのサポート状況に応じて対応を決めるなら、
VistaのIE9だけ2017年4月まで対応するというのも変な話なので切っていいと思うよ

707 :Name_Not_Found:2015/09/17(木) 15:04:48.85 ID:???
>>704
Androidは4終盤からChromeを積んでる
「ブログの記事下情報」程度を表示させるためにBabelを使うというのは大げさだし、
逆に「ブログの記事下情報」程度が表示できないブラウザがあるからといって
テンプレートリテラルを使うなというのも大げさでしょ
大した理由もないのに新しいものにムキになって批判したがるクセは直したほうがいいよ

708 :Name_Not_Found:2015/09/17(木) 15:28:08.93 ID:???
>>707
手段が目的になってるねw

テンプレートリテラルを使うのが目的じゃないんだよ?

709 :Name_Not_Found:2015/09/17(木) 15:29:59.25 ID:???
サポートされているから対応する、されていないから対応しないというのが方針になり得るの?
この場合サポートと言っても致命的なバグフィックスをするかどうかであって
それを方針にするということは、しいて言うならユーザーの安全だけを考えるということになるよ?
個人的には新しいWeb技術に追従しないということはサポートされなくなって死んでるのと同じだと思う。

それとひたすらBabal推す人がいるけどSafariを切り捨てないためということなら分かるけど、IEのためにはならないでしょ。
だってIEはまだまだ8のシェアが高いんだから、さらに5to3とかを噛ませないとダメじゃないの?

710 :Name_Not_Found:2015/09/17(木) 15:38:01.10 ID:???
>>708
ほんとうに頭が悪いんだね
今は「テンプレートリテラルをそのまま使う」という手段についての是非を話してるのであって、話の目的でもある
このことは当然「古いブラウザにとにかく対応する」という手段についてとは別質だよ
君が言うべきはそうじゃなくて、「俺が頭の悪い話を始めてしまった、もう質問者を置いてきぼりにした話はやめよう」じゃないの?

711 :Name_Not_Found:2015/09/17(木) 15:45:19.46 ID:???
> 「テンプレートリテラルをそのまま使う」

それが「そのまま」なんて書きましたか?

Babel使って変換しても問題無いでしょう?

712 :Name_Not_Found:2015/09/17(木) 15:51:05.43 ID:???
>>709
> だってIEはまだまだ8のシェアが高いんだから、さらに5to3とかを噛ませないとダメじゃないの?

Babelで変換したものは、一部を除いてIE8で動くよ。
http://babeljs.io/docs/advanced/caveats/

IE8より前のブラウザもサポートするなら、es5-shimを入れれば良い。

713 :Name_Not_Found:2015/09/17(木) 19:32:00.85 ID:???
>>704には反対する要素がないが、>>694-695,697-698,706はおかしいと思う
「ES5に対応したいから」は手段の目的化
Windows OS 上でIE最新版のみがサポート範囲なのだから、Vista が IE9 サポートなのは当然

714 :Name_Not_Found:2015/09/17(木) 19:37:46.44 ID:???
> 「ES5に対応したいから」は手段の目的化

ES5に対応したいんじゃなくて動かすために作ってるのだから、
正常に動かしたい(主流のブラウザで)。それが目的だよw

> Windows OS 上でIE最新版のみがサポート範囲なのだから、Vista が IE9 サポートなのは当然


だからぁ。  何度も言わせるなよ。


テンプレートリテラルはIE9もIE10もIE11も対応していません。
あとついでにSafariもiPhoneもちょっと古いAndroidもな。

目的は「動かしたい」なのに、テンプレートリテラルにを使うと動かないんだよ。

715 :713:2015/09/17(木) 20:27:19.28 ID:gwUiOAk5
>>714
おまえさんが何に怒ってるのかわからん
非対応ブラウザの為にBabelを使うのじゃないのか
「IE10以下を切れ」だの「Edge未満は切れ」だのの極論には反対するが、Babelを使うことに異を唱えてはいない

> だからぁ。  何度も言わせるなよ。
コメントの一つ一つに反論はするが、おまえさんがどの書き込みをしたかなど知るものか
齟齬が発生するのを嫌うならidやトリップを出すか、その一つの書き込みだけで全容がわかるように何度でも書け

716 :Name_Not_Found:2015/09/17(木) 22:52:36.04 ID:???
>>714
目的は「動かしたい」ではなく「テンプレートを使いたい」だろ。
IEじゃ動かないからテンプレートはダメというのは答えになっていない。
Babelを勧めるのもいいけど、関数コメント式テンプレートを勧めるのがベストでしょ。

717 :Name_Not_Found:2015/09/17(木) 23:34:06.77 ID:???
>>716
テンプレートリテラルなw

テンプレートリテラルを使うことを否定なんかしていない。
あー、わかりやすく言うと、テンプレートリテラルを使えって言ってる。

そして追加の情報として、今多く使われているブラウザで動かないから
Babelと併用するのが現実的だよって話をしている。

コメントはミニファイで消える

718 :Name_Not_Found:2015/09/18(金) 00:16:20.12 ID:???
>>717
自分だけの世界に入っちゃってるみたいだけど大丈夫?

719 :Name_Not_Found:2015/09/18(金) 00:19:11.08 ID:???
それ以外は何も言い返せないとw

720 :Name_Not_Found:2015/09/18(金) 08:31:21.93 ID:???
Babel を使うことに反対はないのにこの人は何をムキになってるんだ?

721 :Name_Not_Found:2015/09/18(金) 09:26:03.65 ID:???
脳はとっさに判断するとき決断の後にその理由を付けるというからな
短気で自分の思い込みと反することにとっさに反応したものの論理的に突き返されて
プライドが高いから引くに引けなくなってるんだろう

今はもう自分が何のために何を考えてるのかもわからない状態
脳の制御を失ってるので支離滅裂になる

722 :Name_Not_Found:2015/09/18(金) 22:20:47.17 ID:oK3+h2r/
document.createElementを使ってもう一つのJSスクリプトを書き出すことってできる?

特定の場所にアドセンスを表示させたいんだけどうまくいかない…

723 :Name_Not_Found:2015/09/18(金) 22:25:17.32 ID:???
>>722
position absoluteでやれば?

724 :Name_Not_Found:2015/09/18(金) 22:31:23.75 ID:oK3+h2r/
>>723

コメントの一覧があって、アドセンス貼る場所を「コメントの上から〜番目」にしたいのよ。
コメントには連番降ってあるから、たとえばコメントの三番目の下に表示する場合「ID=“com3”」に表示したい。
そのためにはスクリプトでアドセンスのスクリプトを書いてappendChildする以外なさそうなんだよね…

725 :Name_Not_Found:2015/09/19(土) 06:35:21.78 ID:???
(X)HTML/CSS/Dreamweaverの質問に優しく答えるスレ19©2ch.net
で質問したんですが、今別の話題で盛り上がっているようなので
こちらで教えてほしいのですが、
bodyに
<div id="div_ID"></div>
を入れておいて、その次に、
https://support.google.com/adsense/answer/181960?hl=ja
このページにある
<script>
...
</script>
で囲まれたアドセンスコード全体をシングルクォーテーションで囲って文字列変数に入れて
document.getElementById('div_ID').innerHTML = 文字列変数;
のようにセットしても広告が出ません。
こういうやり方では出ないのでしょうか?

726 :Name_Not_Found:2015/09/19(土) 07:26:11.66 ID:???
>>722,724
createElement('script') と HTMLScriptElement#text を使ってください。
http://www2u.biglobe.ne.jp/~oz-07ams/2003/HTML/HTMLScriptElement.html#HTMLScriptElement-text

727 :Name_Not_Found:2015/09/19(土) 07:37:42.33 ID:???
>>725
IE9- は innerHTML で <script> を挿入できません。解決法は>>726で。
https://github.com/component/domify/issues/33
http://quirksmode.org/dom/html/#t00

728 :Name_Not_Found:2015/09/19(土) 08:19:25.15 ID:???
>>727
詳しい情報ありがとうございました。
助かりました。

729 :Name_Not_Found:2015/09/19(土) 13:51:56.71 ID:BAdA2rgT
投稿フォームの「onsubmit」で、内容を投稿した後に送信後のページから送信前のページに戻ってくるようにしたいのですが、どうすればいいのでしょうか…

730 :Name_Not_Found:2015/09/19(土) 14:14:39.71 ID:???
>>729
通常はsubmit後のページを出力するサーバサイドスクリプトでリダイレクトさせる。

731 :Name_Not_Found:2015/09/19(土) 16:02:49.80 ID:BAdA2rgT
>>730
返信ありがとうございます。
ということはJSよりもPHPのほうが良いのでしょうか…?

732 :Name_Not_Found:2015/09/19(土) 16:27:09.88 ID:???
javascriptだけじゃサーバ側で正常に処理されたかわからないじゃん
そんな保証いらないのならjavascriptだけでやってもいいけど

733 :Name_Not_Found:2015/09/19(土) 19:16:31.35 ID:???
>>731
始めにサーバサイドスクリプトで受けるわけだからJavaScriptを出力させるのは非効率。
どうしてもやりたいなら、PHPでscriptコードを出力する事になる。

734 :Name_Not_Found:2015/09/19(土) 21:01:44.36 ID:???
取得したform要素からinputやbuttonなどのフォーム部品だけを取ってくるにはどうすればいいでしょうか?

p要素などは拾わないようにしたいのですが、フォーム部品一覧みたいな配列と順にループ、比較させるしかないですか?

735 :Name_Not_Found:2015/09/19(土) 21:17:33.19 ID:???
jQueryを使うなら

$(form).find(':input')

736 :Name_Not_Found:2015/09/19(土) 23:19:54.99 ID:???
>>734
HTMLFormElement.elements
http://www2u.biglobe.ne.jp/~oz-07ams/2003/HTML/HTMLFormElement.html#HTMLFormElement-elements

737 :Name_Not_Found:2015/09/20(日) 10:54:12.57 ID:???
質問投げっぱなしで放置は良くないと思うぞ(>>724とか>>734とか)

738 :729:2015/09/20(日) 11:34:36.46 ID:rR9hMswL
>>733

わかりました…PHPのほうで模索してみます…
ありがとうございました。
あと、流れ的に質問内容が似通ってますが>>734さんとは別人ですー(念のため)

739 :Name_Not_Found:2015/09/20(日) 11:42:56.54 ID:???
どうしてもJSでやるならsubmit時にsessionStorageにでも適当な値を埋め込んで
submit後のページでそれが存在したら戻るようにするって方法もある
でも>>733の言うようにサーバー側で振り分けたほうが無難だね

740 :724:2015/09/20(日) 11:56:31.11 ID:rR9hMswL
あと、>>724ですが、>>725さんとも質問内容が似通ってますが別人です;

>>726さんご回答いただきありがとうございました!
たしかに、innerHTMLでスクリプトを書いてもうまく広告が表示されないですね…
ご指摘の方法でまたやってみますー

741 :Name_Not_Found:2015/09/20(日) 12:04:05.17 ID:???
>>738
スレ違いだけど、Location ヘッダを使えば HTML 出力させる必要もないよ
http://php.net/manual/ja/function.header.php

742 :Name_Not_Found:2015/09/20(日) 12:49:33.47 ID:???
>>739
> どうしてもJSでやるならsubmit時にsessionStorageにでも適当な値を埋め込んで

クッキーではなくセッションストレージである理由は何でしょうか?
用途から考えてデータサイズ的にはクッキーで問題がないと思います。

743 :Name_Not_Found:2015/09/20(日) 16:54:00.38 ID:???
戻ってくるとか考えるのは近代的だはない。
ajaxでpostしてそもそも遷移しなければいい。

744 :Name_Not_Found:2015/09/20(日) 18:12:35.14 ID:???
>>735 >>736
レスありがとうございます

今やってみようとしたらまだ理解が足りないようでうまく使うことができませんでした
最近継承など基本的なことがわかってきたレベルでまだDOMについては全然なのでしっかり読み直してみることにします
jqueryのfindも中身見てみたら何かわかるかもと思ったのですがまだ早そうな感じでした

せっかくすぐに回答して頂いたのに遅れてすみません

745 :Name_Not_Found:2015/09/20(日) 19:04:20.49 ID:???
>>727
<div>に
createElement('script') で追加した
scriptって、不要になった場合divの
innerHTML=""
で削除出来る?

746 :Name_Not_Found:2015/09/20(日) 23:24:24.88 ID:???
>>745
環境がないので分かりませんが、試した結果はどうでしたか?
Node#removeChild にした方がスマートになるとは思います。

747 :Name_Not_Found:2015/09/21(月) 05:28:19.77 ID:???
環境がないなら言うな偽善者

748 :Name_Not_Found:2015/09/21(月) 08:14:16.51 ID:???
>>746
なるほど。ありがとうございました。

749 :この板へ初投稿する新参者です:2015/09/21(月) 08:28:16.41 ID:IuyBqcPH
Javascriptの有効/無効を、Webサイトの中(例えばラジオボタン)で、
ユーザーがスイッチングできる方法ってありませんか?

ブラウザの拡張機能として簡単にスイッチングできる方法でもいいです。
jsoffっていう、Google Chrome用のスイッチが、ずばりです。
ただし求めているのは、AndroidのChrome用です。

検索しても、サッパリ見当たらないです。

750 :Name_Not_Found:2015/09/21(月) 08:50:49.96 ID:???
ない

751 :Name_Not_Found:2015/09/21(月) 09:00:54.98 ID:???
>>749
JavaScript でブラウザの設定を勝手に変更することは出来ません。
その手の機能はブラウザアプリ側で何とかしてください(Chrome以外のブラウザを探す等)。

WebサイトのJavaScriptで対応する場合、JavaScript 適用後の DOM がどのようになっているかを全て把握している必要があります。
具体的には全てのイベント削除した上でdocument上のDOMを元に戻す作業が必要です。
ページをリロードしていいのなら、サーバサイドスクリプトで全てのscript要素ノードと全ての on* 属性を削除する処理を入れれば良いので、そっちの方が楽に書けます。

752 :この板へ初投稿する新参者です:2015/09/21(月) 09:48:31.48 ID:IuyBqcPH
>>751 ご回答ありがとうございました。
単純にSelect文でjavascriptを用いたり避けたり、
という方法では、「スイッチング」ができない、
のでしょうかね。

753 :Name_Not_Found:2015/09/21(月) 10:09:33.14 ID:???
>>752
document.body.appendChild(document.createElement('p'));
上記コードが実行された場合、製作者は body 要素ノードに p 要素ノードが挿入された事を「知って」います。
ですので、JavaScript を無効化するには p 要素ノードを削除すればいい事も「知って」いるはずです。
全てのコードに対して何を実行したかを把握し、管理して下さい。

754 :Name_Not_Found:2015/09/21(月) 13:13:07.79 ID:???
ない

755 :Name_Not_Found:2015/09/21(月) 18:10:48.83 ID:???
拡張機能でJSの有効無効を切り替えられるものはある

756 :Name_Not_Found:2015/09/21(月) 19:36:32.51 ID:arg+MnF0
質問でもないんですけど
別に暗記する必要ないですよね
要は必要な時に調べてっていう事が重要っすもんね
なのでブラウザのお気に入りに登録しておくことと
ディスプレイの前に参考書を置いておくっていうこの2点ですよね

757 :この板へ初投稿する新参者です:2015/09/21(月) 19:46:12.96 ID:q3j3h0dh
>>755
AndroidのChrome用で???

758 :Name_Not_Found:2015/09/22(火) 00:29:03.19 ID:???
恥ずかしながらノードとDOMの関係がイマイチわかりません。
windowやらの大きな括りがDOMで
タグやらテキストやらのエレメントがノード?

759 :Name_Not_Found:2015/09/22(火) 00:57:02.64 ID:???
DOMはHTMLのツリー構造をプログラムから操作するAPIの名称
JavaScript特有のものでもなければ他の言語にもある
んでHTMLのツリー構造を構成する各データがノード
>タグやらテキストやらのエレメントがノード?
テキストはテキストノードでエレメントじゃないけどまぁそんなところ

760 :Name_Not_Found:2015/09/22(火) 10:40:39.79 ID:???
>>758
ノードの種類は多岐にわたるので仕様を参照
http://www.y-adagio.com/public/standards/tr_dom2_core/core.html#ID-1590626202-h3
http://www.hcn.zaq.ne.jp/___/WEB/DOM4-ja.html#nodes

> タグやらテキストやらのエレメントがノード?
テキストとエレメントはともかく、タグはノードではない
タグと要素(エレメント)の違いを意識するといい

761 :Name_Not_Found:2015/09/22(火) 17:30:23.27 ID:???
する必要はない。実際混同されてるんだから。
定義厨は帰って、どうぞ。

762 :Name_Not_Found:2015/09/22(火) 18:05:32.96 ID:???
JavaScriptの話をしているときは要素(英語でエレメント)
HTMLの話をしているときはタグって言ってればいいだけだよw

このスレなら全部要素って言ってれば、
定義厨がからんでくることもないw

763 :Name_Not_Found:2015/09/22(火) 18:16:44.51 ID:???
用語定義の質問だったから補足しているだけでしょ
そこで区別する必要はないと絡んでくるのは混乱の元でしかない

764 :Name_Not_Found:2015/09/22(火) 19:30:25.60 ID:Cl9M+EaX
>>758さんじゃないけど俺もnodeの扱い方というか概念がわからない…

var element = document.createElement('div');
でつくったエレメントはappandChildで好きなとこに追加できるけど、
たとえば

ver element = ‘<div>hoge</div>’;
で代入した値は、appndChildで挿入できないの?

765 :Name_Not_Found:2015/09/22(火) 19:43:53.02 ID:???
>>764
ver element = ‘<div>hoge</div>’; はHTML(の一部)であってNodeではない。
挿入したけりゃinsertAdjacentHTMLを使うべし。
そうすれば勝手にNodeに変換してくれて挿入してくれる。
https://developer.mozilla.org/ja/docs/Web/API/Element/insertAdjacentHTML

766 :Name_Not_Found:2015/09/22(火) 19:46:56.51 ID:???
そんなん
var date = new Date('2015/9/22')
はdate.getDayで曜日を取得できるけど
var date = '2015/9/22'
では使えないの?と聞いてるのと同じやぞ

767 :Name_Not_Found:2015/09/22(火) 19:52:26.80 ID:???
>>764
'<div>hoge</div>'は家系図の一個人の箇所を切り取ったものでしか無い。
ただの文字列を実際の家計に組み込むことは出来ない。
きちんとcreateで人体生成して初めて養子縁組ができる。
insertAdjacentHTMLなんかは家系図の断片を設計図として家系を生成し、
実際の家系に組み込むことが出来る

768 :Name_Not_Found:2015/09/22(火) 21:04:23.59 ID:???
書きようによっては<div>test</p>とかが許される書き方はノード(エレメント)ではなくただのテキスト
DOMはそういったテキストをノードとして挿入する時に適宜開始と終了タグを補完する

769 :Name_Not_Found:2015/09/22(火) 21:20:02.80 ID:???
DOMシステムがタグを補完したりはしないよ
補完とか言うのはおおむね仕様上の概念上であって、
パーサは補完されるように解釈しないといけないけど実際にわざわざ
プリパーサが補完した上で処理してるわけではないよ

770 :Name_Not_Found:2015/09/22(火) 21:21:37.97 ID:???
> JavaScriptの話をしているときは要素(英語でエレメント)
> HTMLの話をしているときはタグって言ってればいいだけだよw

これが一番わかり易い

771 :Name_Not_Found:2015/09/22(火) 21:54:29.99 ID:???
cookieとlocalStorageって前者が有効期限が有る以外は同じようなもんですか?
どっち使っても同じですか?

772 :Name_Not_Found:2015/09/22(火) 21:59:58.74 ID:???
>>764
appendChild で挿入可能なのは Node だけです。
要素ノードやテキストノードは挿入できますが、「文字列」はノードでないので挿入できません。
ご掲示の例でいえば、次のようなコードになります。

var element = document.createElement('div');
element.appendChild(document.createTextNode('hoge'));
document.body.appendChild(element);

773 :758:2015/09/22(火) 22:02:33.93 ID:???
みなさん御親切に有難うございました。
タグと要素(エレメント)の違い含め、
ざっくりですがわかってきたようなきがしました。

774 :Name_Not_Found:2015/09/22(火) 22:12:07.03 ID:???
javascriptで、ファイルのアップロードのふりをしたいんですが
どうしたらよいでしょうか。

具体的には、input:fileみたいな感じでファイルを選択し
そのファイルをJavaScript内で読みたいです。

ファイルのダウンロードのふりは出来たので、アップロードも
ふりしたいです。

775 :Name_Not_Found:2015/09/22(火) 22:32:09.63 ID:???
>>771
localStrage は IE7- で使えません。
Cookie はサーバに送信しますが、localStrage は送信しません。

776 :Name_Not_Found:2015/09/23(水) 00:18:13.12 ID:???
最近入った新しいローカルリソースのCatch APIイイね

777 :Name_Not_Found:2015/09/23(水) 08:38:59.36 ID:???
今頃知ったのかよw
俺はいつ殆どのブラウザが対応してれるのかを
待ってる。実際に使えるようになるのはいつの日か。

778 :Name_Not_Found:2015/09/23(水) 09:20:40.55 ID:???
位相変換 p点とp'点では異なる位相で観測
http://faustus.xii.jp/uploda/src/file747.htm

設問2 SVGプログラミング

このプログラムの文字数を
出来る限り小さくせよ

779 :Name_Not_Found:2015/09/23(水) 09:36:04.94 ID:???
>>778

font-size: 1px

780 :Name_Not_Found:2015/09/23(水) 10:14:06.62 ID:???
節子!それ文字数やない、文字サイズや!

781 :Name_Not_Found:2015/09/23(水) 16:47:08.73 ID:SPRgWsCT
<td> <a href="http://~” title=“ほげ”>ほげ</a> </td>
<td> <a href="http://~” title=“ほげ2”>ほげ2</a> </td>

こんなデータが何十個も列挙されてるんだけど、クリックすると下のテキストエリアに<td></td>内の内容が自動挿入されるボタンを横に設置したいんだが、input以下の処理をどうすればいいかわからない…

【HTML】
<td> <a href="http://~” title=“ほげ”>ほげ</a> <input type=“button” onclick=“tuika(現在のTDタグ内のURLとTITLE)”></td>

【JS】
function tuika(現在のTDタグ内のURLとTITLE) {
document.getElementById(‘テキストエリア’).value = 現在のTDタグ内のURLとTITLE;
}

一応こんな感じにしたいとは思ってるんだが、クリック後の処理で現在のurlとtitleを取得するのってどうすればいいの?

782 :Name_Not_Found:2015/09/23(水) 18:28:44.50 ID:???
>>777
昔から知ってるよ、SWもCatchも正式にコミットされる前に自分でForkして
自分でパッチ当ててChromiumビルドして試したくらい。
で、Fxも対応したことだし俺の中で実験レベルを抜けて実践で使えるようになったのが今というだけ。

783 :Name_Not_Found:2015/09/23(水) 18:48:26.24 ID:???
>>781
tuika({ url: this.previousSibling.href, title: this.previousSibling.title })
みたいな感じにすればいけると思う

784 :Name_Not_Found:2015/09/23(水) 19:07:03.02 ID:???
>>780
p { visibility: hidden }
p::first-letter { visibility: visible }

785 :Name_Not_Found:2015/09/23(水) 22:52:48.36 ID:???
try catchで捕まえられないエラーはどうすれば捕まえる事が出来ますか?
エラーの時に専用の処理をしたいんですが。

786 :Name_Not_Found:2015/09/23(水) 23:01:13.11 ID:???
try catchで捕まえられないエラーって、文法エラーとか?

787 :Name_Not_Found:2015/09/23(水) 23:07:07.22 ID:???
>>786
よくわからないんですがindex.htmlで
Jqueryやadsenseや自作のjsなど読み込んでいる途中で確かjqueryで例外が出る場合があります。

788 :Name_Not_Found:2015/09/23(水) 23:31:07.59 ID:???
>>787
ライブラリとか自分がいじれない範囲のコードのエラーだったら、onerrorで補足するしかないね。
<script>
window.onerror = function(message, url, line, column, e){
// ここにエラー時の処理を記述する。
// ↓例えば、全てのエラーを捕捉して、エラーの内容をアラートで表示するなら↓
alert(message);
};
</script>

上のコードを他のコードよりも一番早く実行すれば、それ以降のエラーは全て捕捉する。
ただし本当に全てのエラーを捕捉してしまうので、本当に自分が補足したいエラーかどうかを区別すべし。

789 :Name_Not_Found:2015/09/23(水) 23:31:46.39 ID:???
CSSをイジる系のJavascriptのコードって、Javascriptが難しいのでなく
CSSの挙動が勉強不足で分からないことが多いのでCSSの勉強してますが、
webアプリケーションってJavascriptだけ勉強したらokでなく、html、html5、
Javascript、サーバ側の言語も勉強しないと作れないので大変ですね。
もう、進歩が早すぎて、市販の本の内容がすぐに古くなるので、
すごく焦ってしまいがちになるんですが、みなさんどうでしょうか?

790 :Name_Not_Found:2015/09/24(木) 00:11:38.54 ID:???
その時必要な情報を調べるスキルが有れば、それほど高いハードルでもないと思うけど
何がどこまでできるのか言語の下地を理解してれば、関数名とかスペルとか具体的なものは覚える必要無いし

凝った方法を試行錯誤するのも楽しいけど、本当にその方法が必要かは少し考える事も必要
メンテナンスを考えると最もシンプルに実装するのが最良の方法だと思うけどね

791 :Name_Not_Found:2015/09/24(木) 09:44:52.24 ID:???
>>789
それは別にWebアプリケーションに限った話じゃないですよ
心配しなくても大丈夫かと

792 :Name_Not_Found:2015/09/24(木) 09:52:20.63 ID:???
でも恐らく一番厄介だったアニメーションに関してはWeb Animation APIが入ったことだし。

793 :Name_Not_Found:2015/09/24(木) 10:50:45.88 ID:???
>>788
ありがとうございました。
さっそく試してみたのですが、この方法でも捕まえられないエラーのようです。
どうしたらいいでしょうか?

794 :Name_Not_Found:2015/09/24(木) 11:31:13.27 ID:???
非同期処理ならその部分も別にtry/catchで囲わないとダメだよ

795 :Name_Not_Found:2015/09/24(木) 12:40:52.06 ID:???
>>794
本当ですか!
やってみます

796 :Name_Not_Found:2015/09/24(木) 13:43:32.08 ID:???
間違いなくPromise使った方がいい

797 :Name_Not_Found:2015/09/24(木) 15:02:10.70 ID:???
>>796
どういう点が?

798 :Name_Not_Found:2015/09/24(木) 15:14:48.25 ID:???
まずPromiseはライブラリがあるから古いブラウザでも
動くので選択肢になりうる。最低限の条件を満たしている。

JavaScript標準の機能でその他のライブラリもこれに追尾するだろう。
jQueryも3.0で標準のPromise互換になる。

一番よくいわれるのがインデントが減るということ。
これはこれで重要なんだが、短いコードだとあまり
メリットがないと思うかもしれない。

Promiseを使うと例外処理がわかりやすくなる。
例えばこれは間違い。これではエラーをトラップできない。

try {
 setTimeout(function() { throw "Error }, 1000);
} catch(e) {
 console.log(e);
}

これにさらに逐次処理を行うために処理のネストを
するということを考えたら大変だろう?

799 :Name_Not_Found:2015/09/24(木) 15:20:00.34 ID:???
>>798
setTimeoutのtry-catchの正しい例を教えてください。

800 :Name_Not_Found:2015/09/24(木) 15:21:45.21 ID:???
setTimeoutはPromise対応ではないので、
Promiseオブジェクトを返さない。
逆に言えば、Promise対応の関数はすべてPromiseを返す。

以下のfuncNはすべてPromiseを返すものとする。

func1()
.then(function(value) { return func2(); })
.then(function(value) { return func3(); })
.then(function(value) { return func4(); })
.catch(function(e) { console.log(e); })

非同期の逐次処理 + 例外対応がこのように書くことができる。
最後のcatchは処理のどの部分で例外が発生してもトラップできる。

さらにアロー関数を使うとここまでシンプルになる

func1()
.then( value => func2() )
.then( value => func3() )
.then( value => func4() )
.catch(e => console.log(e) )

アロー関数はEcmaScript6の機能なので対応していない
ブラウザもかなりあるが、そこはBabelやTypeScriptを使えば
既存のブラウザでも動くように変換してくれる。

また、catchの書き忘れ、つまり例外処理を書き忘れた時だが、
標準のPromiseではなくbluebird(Promiseの強化版互換ライブラリ)を
使えばcatchを書き忘れた時に警告してくれる。

801 :Name_Not_Found:2015/09/24(木) 15:28:23.91 ID:???
Promiseって何だか凄い。
でも難しそう。

802 :Name_Not_Found:2015/09/24(木) 15:31:21.31 ID:???
funNが必ず引数を1個だけ取るという仕様であれば
こう書くこともできるだろう。

func1()
.then( func2 )
.then( func3 )
.then( func4 )
.catch(e => console.log(e) )

ただこの書き方は複数の引数を取れる関数の場合に対応しづらくなる。

出来なくはない。例えばlodashのライブラリのcurryを使えば
複数の引数を取る関数から、引数の数を減らした関数を作ることができる。
つまり、どんな関数でも引数が1個だけの関数を作り出せる。

func1()
.then( _.curry(func2("test")) )
.then( func3 )
.then( func4 )
.catch(e => console.log(e) )
※試してないから動かないかもしれないのでイメージと言うことで。

803 :Name_Not_Found:2015/09/24(木) 15:42:49.71 ID:???
>>801
> Promiseって何だか凄い。
> でも難しそう。
Promiseは、その仕組とかを説明する形から
入っているからわかりづらい解説が多い。

setTimeoutとかそうだが、通常の非同期関数は一般的に
戻り値を返さない。非同期で動くので戻り値となるものは
コールバック関数に渡される。

「Promiseに対応した関数は戻り値としてPromiseオブジェクトを返す」
これが一番最初に知るべき一番重要なこと。

ちなみにsetTimeoutをPromise対応にするコードはこう

function setTimeoutP(seconds) {
 return new Promise(resolve, reject) {
  setTimeout(function() { resolve() }, seconds);
 }
}
例外のコードは省いたけど、対応するならばtry-catchでcatchした後reject(e)を呼び出せば良い。

こうするだけで、通常の非同期関数(戻り値なし) => Promise対応関数(戻り値Promiseオブジェクト)
に変換できる。ちなみのNodeでbluebirdを使っている場合は、Promise.promisifyで
簡単にnode標準の非同期関数からPromise対応にできる。

こうしてPromiseオブジェクトを返す関数にしてしまえばさっき書いたように、
.thenで逐次処理できるし並列処理とかも簡単にできる。

ただJavaScript標準のPromiseは基本的な機能しかないのでbluebirdおすすめ。
https://github.com/petkaantonov/bluebird/blob/master/API.md

804 :Name_Not_Found:2015/09/24(木) 15:51:34.50 ID:???
補足するが、Promise対応のコードとしてこのように書いたが、

func1()
.then(function(value) { return func2(); })
.then(function(value) { return func3(); })
.then(function(value) { return func4(); })
.catch(function(e) { console.log(e); })


実は最初のfunc1は例外として、2〜3はPromiseではなく普通の値を返してもいい。
その場合でも.thenで次の関数に値を渡すことができる。

またPromiseには、Promise.resolve()やPromise.reject()という
関数も用意されており、これらは "非同期処理を行わずに" Promiseオブジェクトを返すことができる。
https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/Promise/resolve

この二つの機能が何であるかというと、上に書いたコードは
Promiseを使ったコードではあるが、Promiseを使わないこともできるし、
同期、非同期のどちらでも使えるということ。

つまりPromiseでよく言われている、上から流れていくようにコードが書ける
ということの意味は単にネストしないってだけではなく、
Promise対応でも非対応でも、同期でも非同期でも、
そんなの関係なく、.thenを使って逐次処理を書いていけるということ。

805 :Name_Not_Found:2015/09/24(木) 16:45:26.30 ID:???
書き間違えて下のやつみたいになってたのが通っちゃったのでちょっと気になったんですが、この二つって意味同じですかね?
代入より先に配列関連メソッド使わないのであれば下の方が他の変数と宣言まとめられて楽そうなんですが
これはアリなんですか?

var array = [];
array.push('a');
array.push('b');

var array;
array = ['a', 'b'];

806 :Name_Not_Found:2015/09/24(木) 16:58:48.61 ID:???
それどころかこれでいい。
var array = ['a', 'b'];

むしろ代入なしの変数宣言はやめたほうがいい。

それから、ハッシュと組み合わせてこんな書き方も普通にやる
var hash = { 'a': 123, 'b': 456, [7, 8, 9]}


なお[]とほぼ同等の意味であるnew Array。
new Arrayは通常は使わない。

807 :Name_Not_Found:2015/09/24(木) 17:04:58.17 ID:???
ありがとです
他の言語のように使う直前に宣言するのであればもちろんそういう形にします
まとめて宣言したほうがいいみたいなのがやや優勢のようなのと
ダラダラvarを書き連ねるのもアレなので頭で宣言する形を取っていたのですが
javascriptの場合はどっちがいいんでしょうかね

808 :Name_Not_Found:2015/09/24(木) 17:31:32.78 ID:???
どちらでもいい場合に、選んでいるのが
「使う直前に宣言」ならばそっちのほうが優れてるって
わかってるってことだろ?

変数の巻き上げさえしっているならば、JavaScriptでも
使う直前に宣言した方がいい。

それでトラブルが起きるならば、関数が長すぎる。

809 :Name_Not_Found:2015/09/24(木) 17:46:54.73 ID:???
きちんとしたコードを書くなら直前宣言でいいってことですか
やっぱりこっちのほうが直感的にもわかり易いですしこれからは普通に書きます
ありがとうございました

810 :Name_Not_Found:2015/09/24(木) 19:03:26.93 ID:???
犯人はペルー人、韓国人、中国人だな

811 :Name_Not_Found:2015/09/25(金) 00:14:50.18 ID:???
>>808
変数というのはスコープ内で機能するものなんだから、
スコープに浸透するように存在が巻き上げられて当たり前。
問題はundefinedで初期化されること。

812 :Name_Not_Found:2015/09/25(金) 00:26:52.75 ID:???
巻き上げはES6のlet,const,classでは導入されていない。
今や完全に互換性のためだけに存在するようなもんだから、巻き上げに頼らないに越したことはないよ。

813 :808:2015/09/25(金) 05:03:54.01 ID:???
>>811-812
知ってる

let、constを使っても、上の方でまとめて定義するか
使う直前に定義するか、という質問の答えにはなっていない。
俺は>>807へのレスをしただけ。

>>807への答えは>>808で書いたように「使う直前」
ついでに使う直前に書いた時の注意点(巻き上げ)を補足として書いたまで。

814 :Name_Not_Found:2015/09/25(金) 06:02:23.15 ID:???
>>806
つっこまないぞ

815 :Name_Not_Found:2015/09/25(金) 06:12:27.45 ID:???
letだけど

function foo() {
function bar() {
console.log(a);
}

let a = 'b';
bar();
}
foo();

これで未定義エラーにならずに a が参照できるのは
巻き上げではないの?

816 :Name_Not_Found:2015/09/25(金) 07:35:04.22 ID:???
巻き上げだよ。
letやconstも当然巻き上げされるし他の言語でもそう。
ただしletやconstは宣言文が評価されるまでは、
変数は未初期化で利用不可の状態になっている。

817 :Name_Not_Found:2015/09/25(金) 07:51:23.85 ID:???
jsってブロックスコープないらしいけどforのループ変数って再利用避けた方がいいの?
別ブロックなのにいきなりj使うとかなんかヤだししょっぱな値入れるから問題ないとは思うんだけど

818 :Name_Not_Found:2015/09/25(金) 08:20:38.48 ID:???
>>816
ブロックスコープ範囲内だし、変数宣言後の呼びだしだから ReferenceError になる理由がないね。
今は出先で試せないけど、下記コードにしたら ReferenceError にならない?
bar();
let a = 'b';

819 :Name_Not_Found:2015/09/25(金) 08:22:18.48 ID:???
>>817
let を使えばいいじゃない

820 :Name_Not_Found:2015/09/25(金) 08:38:47.10 ID:???
for-letはまたちょっと特殊な意味を持つのと、そのせいもあって当分の間はかなりパフォーマンスが悪い。
ゲームエンジン内やライブラリとかで何十、何百万回も回される可能性があるのなら現状避けるしか無い。

821 :Name_Not_Found:2015/09/25(金) 08:54:07.82 ID:???
誰が造ったのか知らんがホントクソだな
さっさとまともな後継作ってこんな産廃闇に葬れ

822 :Name_Not_Found:2015/09/25(金) 09:22:18.60 ID:???
最近スクリプトスレを荒らし始めた不登校ニート君ちっす

823 :Name_Not_Found:2015/09/25(金) 11:13:39.05 ID:???
index.htmlの中に、
https://developers.facebook.com/docs/plugins/share-button#configurator
で生成したFacebookのコードを貼ってそのindex.htmlをIE9で開いた場合、
index.htmlの中にある別の input text で文字入力してEnterを押すと、
何故か分からないのですが、このFacebookのアイコンをクリックした時と同じく
Facebookのサイトの画面が開いてしまいます。
原因と対策が分かれば教えてください。

824 :Name_Not_Found:2015/09/25(金) 12:36:25.33 ID:???
>>820
「特殊な意味」とは何でしょう?
for ブロック内にスコープを持つ以外に特別な意味があるのでしょうか。

825 :Name_Not_Found:2015/09/25(金) 12:38:21.05 ID:???
>>817
var だとして再利用して問題ありません。

826 :781:2015/09/25(金) 14:54:24.91 ID:MPBsKwM/
>>783

【HTML】
<td> <a href="http://~” title=“ほげ”>ほげ</a> <input type=“button” onclick=“tuika({ url: this.previousSibling.href, title: this.previousSibling.title })”></td>

【JS】
function tuika(Tuika) {
document.getElementById(‘テキストエリア’).value = Tuika;
}

こういうこと?教えてもらってすまんが…これでやると返される値が[object Object]になってしまう…
挿入する場所を間違えてる?

827 :Name_Not_Found:2015/09/25(金) 15:37:36.38 ID:???
>>826
渡してるのがオブジェクトなんだから
valueに代入するときに取り出したまえ

828 :Name_Not_Found:2015/09/25(金) 17:44:01.72 ID:???
>>821
> 誰が造ったのか知らんがホントクソだな
最初のバージョンがクソじゃない言語なんて存在しない。
バージョンアップによる改良 = 前のバージョンの悪いところの修正

> さっさとまともな後継作ってこんな産廃闇に葬れ
それはJavaScriptを作っているとこではなくて、
他の言語を作っている所に言うべきことだ。

なんで他の言語でJavaScriptを置き換えることができないのか!と

829 :Name_Not_Found:2015/09/25(金) 18:10:18.08 ID:???
>>781
jQueryを使った回答
https://jsfiddle.net/1fpedfe8/

jQueryを使わなくてもいいけど、
今時HTMLのonclickに書くとかありえない。

830 :Name_Not_Found:2015/09/25(金) 18:24:52.16 ID:MPBsKwM/
>>829
すげ…Jqueryって便利なんだな…マジでありがとう!
こういうエディタがあるってことも知らんかった…

831 :Name_Not_Found:2015/09/25(金) 18:30:38.52 ID:MPBsKwM/
何度もすまん、>>829の方法だとテキストエリアに挿入される値が上書きされてしまうんだが、これをボタン押すたびに「ほげ1、ほげ2、ほげ3…」と追加していけるようにするにはどうすればいいんだ?

832 :Name_Not_Found:2015/09/25(金) 18:35:16.28 ID:???
>>831
+=

833 :Name_Not_Found:2015/09/25(金) 18:38:18.38 ID:???
すまん初心者に答えだけではまずかったか

a = 1;

とすると、aに1が代入される

a = a + 1;

とすると、aにはa+1が代入される
文字列は+で連結される
’ほげ’ + ’ほげ’ は ‘ほげほげ’になる

ほんで、a = a + 1; は
a += 1;

と書くことが出来る

834 :Name_Not_Found:2015/09/25(金) 19:31:50.74 ID:MPBsKwM/
>>833

つまり、

var $a = $(event.delegateTarget).find('a');
$('#textarea').val($a.attr('href') + $a.attr('title'))

だとクリックするたびに$aに代入される値が上書きされるけど、

var $a += $(event.delegateTarget).find('a');
$('#textarea').val($a.attr('href') + $a.attr('title'))

にすれば、ボタンをクリックするごとに新しい値が$aに連結されて追加されるってこと?

835 :Name_Not_Found:2015/09/25(金) 19:47:55.91 ID:???
>>834
jQのvalメソッドは、value属性値を読みだすor引数で書き換えるやーつな

  $(‘#textarea’).val( なにか );

てのは

  $(‘#textarea’).get(0).value = なにか;

とほぼ同義。だから

  $(‘#textarea’).get(0).value += なにか;

にすれば、足されていくじゃろ
valメソッドを使ってやるなら

  $(‘#textarea’).val( $(‘#textarea’).val() + なにか );

てなる

836 :Name_Not_Found:2015/09/25(金) 20:59:02.90 ID:MPBsKwM/
>>835

おお、なんかわかりかけてきた。
valを「A=B」の形にしたほうがやりやすいかも

var $a = $(event.delegateTarget).find('a');
$('#textarea').get(0).value += $a.attr('href') + $a.attr('title');

そしてうまくいった!
マジでありがとう!>>829>>833>>835よ!

837 :Name_Not_Found:2015/09/25(金) 21:20:48.38 ID:???
>>824
初期化句で宣言した変数は毎ループスコープが作りなおされる。
つまり良い面ではループ内で定義された関数が後に実行されたとき、
それがカウンタを参照していた場合varだと回りきった値になるが、
letだと定義時の値のままになる。
悪く言うと毎ループスコープを作るコストがかかるが、
これはループ内で関数が定義されなければする必要が無いので、
将来的には最適化でvarと同等になるとは思う。

838 :Name_Not_Found:2015/09/25(金) 21:23:52.18 ID:???
>>836
jQuery的には、こっちの方が良い。(ただし長くなる)
valに関数を渡すと現在の値が取得できる。
var $a = $(event.delegateTarget).find('a');
$("#abc").val(function(i, val) {
return val + $a.attr('href') + $a.attr('title');
});

何故かと言うとjQueryっていうのは、0個以上の要素を
まとめて操作するという考え方だから、.get(0)を使うと
例えば#textareaがなかったらエラーになるし.textariaのように
複数あった場合、1個しか反映されない。(今回は問題無いだろうが)

$(‘#textarea’).val(~) これだと0個であってもエラーにならないから、
動的に生成されるページで#textareaがあるか? などと考えなくて良くなる。
要素が0個でも複数あったとしても同じように扱うのがjQueryの考え方

なおEcmaScript6を使えば以下のようにかけるんで、古いブラウザを
切り捨てたりBabelを使えれば、jQueryのやり方でも短くできる。
var $a = $(event.delegateTarget).find('a');
$("#abc").val((i, val) => val + $a.attr('href') + $a.attr('title'));

839 :Name_Not_Found:2015/09/26(土) 02:32:52.06 ID:???
>>817
漏れは、ブロック変数と勘違いする人がいるかも知れないから、
for文では変数宣言しない。
for文の1行前で、変数宣言する

var i = 0;
for(; i < nCnt; i++){ }

また、同じ変数を使い回すと、
バグが出るので、やめた方がいい

別の変数
var i2 = 0;

840 :Name_Not_Found:2015/09/26(土) 04:26:12.25 ID:???
別にfor文の1行前に書いたからといってブロック変数と勘違いするのが収まるわけじゃないでしょ
巻き上げの件もあるしそういうことを言うのなら関数のトップで宣言すべき
バグが出るとか大げさだし合理的でない非効率な思い込みは止めたほうが良い。

841 :Name_Not_Found:2015/09/26(土) 06:46:38.60 ID:???
>>839
俺は、ブロック変数であるかのように見せるためにあえてfor文でかく
for(var i = 0; i < nCnt; i++){ }

同じ変数でさえ使いまわしする。
for(var i = 0; i < nCnt2; i++){ }

なぜならば、こう書くことによって、「変数iはブロックの中でしか
使わないんだ」という意図が明確になるから。


もしfor文の1行前で変数宣言したら
var i = 0;
for(; i < nCnt; i++){ }

変数i は forが終わった後に後に使うのかね? と思ってしまう。

変数iはどういう存在か?ではなくプログラマがどうしたいかを
コードに書くようにしている。できるならばブロック変数にしたいんだよ。

842 :Name_Not_Found:2015/09/26(土) 07:14:58.79 ID:???
>>823
ム板で聞いてみます

843 :Name_Not_Found:2015/09/26(土) 09:21:46.97 ID:???
>>839
var位置に関しては同意できない。
無意味なだけでなく、意図が余計にわからなくなる。

変数の無意味な使い回しに関しては同意するわ。

844 :Name_Not_Found:2015/09/26(土) 11:11:51.36 ID:Ziz/hI+9
みなさんにお聞きしたいことがあります
ネットにあるさまざまなフリーコード(しばらくすると背景に模様が浮かび上がる、クリックするとエフェクトがかかるなど)を見てると
基礎からどんな勉強をすればあんなすごいものが作れるようになるんだろうと思っているのですが、実際基礎からどんな勉強をすれば作成できるようになるんでしょうか?
まだまだ初心者なのでもっと他にやるべきことがあるのかもしれないですが興味があるので、よろしければ教えてもらえるとうれしいです

845 :Name_Not_Found:2015/09/26(土) 13:20:27.53 ID:???
>>839
> 漏れは、ブロック変数と勘違いする人がいるかも知れないから、
> for文では変数宣言しない。
その場合は while を使って関数の始めに変数宣言した方がわかりやすい気がする

846 :Name_Not_Found:2015/09/26(土) 13:38:42.58 ID:???
>>844
DOM基礎がわかってsetTimeout系の関数がどういうものか理解できたらすぐにでも作れる
背景に模様が浮かぶ場合はcss3のbackground-color:rgbaで基本となる背景色をかぶせておいて
rgbaのaの部分(透過情報)をsetTimeout系の関数で変えていくだけ
背景に設置したものじゃない画像の場合はcssのopacityを変えるだけだからもっと単純
クリックのエフェクトがどういうものかわからないけどだいたい似たような仕組みになってる
setTimeout系で○ミリ秒後にDOMの状態を変化させていくのが基本

847 :Name_Not_Found:2015/09/26(土) 18:44:56.51 ID:???
>>844
マルチポストだね
http://peace.2ch.net/test/read.cgi/hp/1400313626/658n-

848 :Name_Not_Found:2015/09/27(日) 02:15:12.92 ID:???
作品レベルのものを作れるようになるには
作品レベルのものを作らないといけない
つまりつべこべ言わず手を動かせ

849 :Name_Not_Found:2015/09/27(日) 03:47:29.69 ID:???
>>844
opacityプロパティで、要素の透明度を指定する

透明度は、0.0(完全に透明)〜1.0(完全に不透明)
の数値で指定します

つまり、2枚の画像を重ね合わせて、
透明度を指定するだけ

850 :Name_Not_Found:2015/09/27(日) 08:56:23.09 ID:???
>>844
> ネットにあるさまざまなフリーコード(しばらくすると背景に模様が浮かび上がる、クリックするとエフェクトがかかるなど)
前者は transition を使えば CSS のみで実装できます。
後者は :target で擬似的に可能な場合もありますが、JavaScript を使うのが基本です。
このぐらいのレベルであれば基礎知識で十分実装できる範囲だと思いますが、JavaScript だけでなく、HTML, CSS も含めて基礎知識が必要でしょう。

851 :Name_Not_Found:2015/09/27(日) 09:15:05.31 ID:???
とっくにレスついてるのにスルーなマルチ相手にマジレスしてんじゃねえよ

852 :Name_Not_Found:2015/09/27(日) 09:50:48.99 ID:???
マルチ気にする奴ってアホだよな

853 :Name_Not_Found:2015/09/27(日) 10:15:43.63 ID:???
マルチポストはマナー違反だから気にする人がいるのは至極正常な思考の持ち主

854 :Name_Not_Found:2015/09/27(日) 13:18:50.62 ID:???
http://peace.2ch.net/test/read.cgi/hp/1400313626/671
こいつと同じやつだろ
ていうか質問者本人だろ
回答内容がさっぱり理解できなかったもんで煽りに走るパターン

855 :Name_Not_Found:2015/09/27(日) 13:53:05.19 ID:???
マルチを気にする人
自分の知識を主張したい人
スレの内容よりも煽りたい・煽られたい人

どれも2ちゃんでは必要不可欠なスレ住人だから安心汁wwwwww

856 :Name_Not_Found:2015/09/27(日) 14:23:15.36 ID:???
>>853
そんなマナー誰が決めたんだ?
俺は知らん

857 :Name_Not_Found:2015/09/27(日) 14:31:18.11 ID:???
なぜマルチポストがマナー違反なのか理解に苦しむ
スルー力不足なのでは?

858 :Name_Not_Found:2015/09/27(日) 15:20:58.11 ID:???
あっちのスレで邪険に扱われたもんだから、鬱憤を晴らしたいんだろ
暖かく見守ってやろうぜ
>>849>>850みたいな親切な回答者もいたし良かったじゃないか

859 :Name_Not_Found:2015/09/27(日) 15:24:06.61 ID:???
その結果が>>852,>>855-857じゃ相手してやった回答者がかわいそうだわ

860 :Name_Not_Found:2015/09/27(日) 15:36:57.22 ID:???
>>859
悔しいのですか?

861 :Name_Not_Found:2015/09/27(日) 15:41:49.96 ID:???
はじめに質問を書いたスレで回答が得られなかった為に、別のスレへ全く同じ文言で前質問スレへのリンクも張らずに質問をした場合(>>844のような場合)
・前スレ、現スレと二重に(マルチの個数によってはそれ以上の)回答が付く可能性がある
・質問がリンクしていない為に同じ回答を付けてしまう事で回答者の努力が無駄になる
・多くのマルチ質問者はレスしたスレ全てに質問停止や感謝レスをしない

>>847の様なレス番n-付きのURLをマルチ二つ目以降の質問全てに付けて質問をすれば、不要な回答を避けられ情報は共有される
最悪でも初回質問のスレURLくらいはマルチ先に書くべき

回答する立場になればマルチが悪なのは容易に理解できるんだけどね

862 :Name_Not_Found:2015/09/27(日) 17:09:16.30 ID:???
マルチポストでぐぐればマナー違反の理由はいくらでも見つかるよね
https://ja.m.wikipedia.org/wiki/%E3%83%9E%E3%83%AB%E3%83%81%E3%83%9D%E3%82%B9%E3%83%88#.E3.83.9E.E3.83.8A.E3.83.BC.E9.81.95.E5.8F.8D.E3.81.AE.E7.90.86.E7.94.B1

863 :Name_Not_Found:2015/09/27(日) 21:28:29.88 ID:???
>>862
そんなもん気にしなくていいよ。

864 :Name_Not_Found:2015/09/27(日) 21:32:23.55 ID:???
時代が変わったんだろうな
ダブルブッキングの悪質性もわからんゆとりに説教しても無駄だから
マルチポスト報告のあとはもうひたすらスルーしたほうがいい

865 :Name_Not_Found:2015/09/27(日) 21:37:39.17 ID:???
>>864
今も昔も何も変わって無いよ。
マルチポストを異様に気にするやつは単に神経質な馬鹿だけ。

866 :Name_Not_Found:2015/09/27(日) 21:40:54.11 ID:???
マルチポスト叩かれたことにご立腹で丸2日監視w

867 :Name_Not_Found:2015/09/27(日) 21:46:02.41 ID:???
マルチポストくん、>>849>>850が理解できなくて悔しいんでちゅかー?www

868 :Name_Not_Found:2015/09/27(日) 21:51:57.13 ID:???
あんま弄ると常駐する荒らしがまた増えるからやめとけ

869 :Name_Not_Found:2015/09/27(日) 21:53:07.70 ID:???
言われた当事者じゃなければどうでもいいことだから反論もしなければレスも目に通らんよ
誰かが言い合いして喧嘩してようがスレが伸びてうざくなり始めてようやく介入する程度
たまに自治厨っぽい振る舞いが気に入らなくて絡むやつもいるけど
基本何かを言われて反論してるやつは言われた人間と見ていい

870 :Name_Not_Found:2015/09/28(月) 05:28:02.90 ID:???
マルチポスト反対を主張できる奴はよっぽど誠実な奴だけだと思うが、
むしろここで反対してるような奴がスレの誠実感を下げてることを認識した方がいい。

871 :Name_Not_Found:2015/09/28(月) 05:56:05.91 ID:lCyBmAVx
質問します
FireFox40
JavaScriptもブックマークレットを初めてです
windows.open();してすぐにそのタブに切り替えたいのですがどうすればいいのでしょうか

var w=window.open();
w.focus();
d=w.document;
st=parseInt(window.prompt("スタート番号",1000));

872 :Name_Not_Found:2015/09/28(月) 06:11:24.95 ID:???
無理

873 :Name_Not_Found:2015/09/28(月) 06:18:56.64 ID:lCyBmAVx
えマジ? 予想外の解答に動揺

874 :Name_Not_Found:2015/09/28(月) 12:57:44.25 ID:???
>>871
可能ですが、window.open の実装法によってはポップアップブロックに阻まれるので window.open 自体が現在はあまり使われません。
ユーザビリティも低いので積極的に使う理由がありません。
http://jsfiddle.net/febuxnht/
https://developer.mozilla.org/ja/docs/Web/API/window.open#.E3.83.A6.E3.83.BC.E3.82.B6.E3.83.93.E3.83.AA.E3.83.86.E3.82.A3.E3.81.AE.E5.95.8F.E9.A1.8C

875 :Name_Not_Found:2015/09/28(月) 15:05:09.80 ID:???
そういうのはブラウザ拡張機能で実装したほうがいいんじゃない
ある程度タブ操作もできるし

876 :Name_Not_Found:2015/09/28(月) 22:17:35.43 ID:???
質問投げっぱなしで放置は良くないと思うぞ(>>844とか>>871とか)

877 :Name_Not_Found:2015/09/28(月) 22:24:22.78 ID:???
>>876
すいませんしたぁーー!!!!

878 :Name_Not_Found:2015/09/28(月) 22:29:17.20 ID:???
>>877
許す!

879 :Name_Not_Found:2015/09/28(月) 22:31:18.89 ID:???
じゃ、許されたってことで、つづきよろ

880 :876:2015/09/28(月) 23:05:54.45 ID:vMPkbcE/
謝る相手は俺じゃないだろ
回答者に返事をしろよ

881 :877:2015/09/28(月) 23:10:08.04 ID:???
>>880
質問者に言えよ。

882 :876:2015/09/29(火) 01:59:03.91 ID:XEQ6dDz9
>>881
質問者でないなら尚更謝るなよ
お前が質問者でないことを俺が知るわけないだろ

883 :Name_Not_Found:2015/09/29(火) 05:37:19.78 ID:???
>>882
すいませんしたぁーー!!!!

884 :Name_Not_Found:2015/09/29(火) 08:05:21.30 ID:???
意味不明
質問者が謝らないのなら他の誰かが謝るしか無いだろ

885 :Name_Not_Found:2015/09/29(火) 08:08:59.73 ID:???
そうだよな。

佐野が謝らないから森元首相が謝ったし。

886 :Name_Not_Found:2015/09/29(火) 11:49:44.07 ID:???
関係者が身分を明かして代理で謝る事は意味があるが、赤の他人の質問者の為に無関係の人が匿名で謝罪して誠意が伝わるわけないだろ

887 :Name_Not_Found:2015/09/29(火) 11:55:41.65 ID:???
そんなもん適当でいいんだよ。
くだらないことで怒ってる奴が満足すれば
怒ってるやつがいなくなる。
みんな笑ってる。それでいいだろw

888 :Name_Not_Found:2015/09/29(火) 13:45:39.10 ID:???
↑賛成

889 :Name_Not_Found:2015/09/29(火) 15:33:05.47 ID:???
質問者に都合が悪いことはくだらない事で一蹴している時点でダメダメだな

890 :Name_Not_Found:2015/09/29(火) 19:19:38.72 ID:???
そここそがイケイケなんだよ!
わかんない?

891 :Name_Not_Found:2015/09/30(水) 02:15:44.58 ID:???
Web Bluetooth APIについての書かれている日本語に記事をご存じないでしょうか?
実際に使用した際の手順とサンプルコードが載っているものが欲しいです。

892 :Name_Not_Found:2015/09/30(水) 10:12:35.69 ID:ZPCngTrx
FormDataに関する質問なんだけど
--------------------------------------------
.html
(略)
<form id="test_form">
<input type="hidden" name="test1" value="aaa">
<input type="hidden" name="test2" value="bbb">
<input type="hidden" name="test3" value="ccc">
</form>
(略)
--------------------------------------------
.js
var form = document.getElementById("test_form");
var fd = new FormData(form);
console.log(fd);

var fd2 = new FormData();
fd2.append("test1", "aaa");
fd2.append("test2", "bbb");
fd2.append("test3", "ccc");
console.log(fd2);
--------------------------------------------
これで出力が
FormData{ }
FormData{ }
で中に何も入ってないっぽいんだよ(サーバー側に送信して中を見てもやはり空っぽ)
FormDataが使用可能なブラウザであることはwindow.FormDataで確認済み(IE11,firefox最新版で確認)なんだけども、
何か原因について心当たりある人はいないだろうか?

893 :Name_Not_Found:2015/09/30(水) 19:39:03.63 ID:???
あらゆる外様オブジェクトに言えることだが、
そういうのは内部スロットに格納されるから元々コンソールでは見れない。

894 :Name_Not_Found:2015/09/30(水) 20:52:18.85 ID:???
>>892
FormData#get でとれますね。
https://xhr.spec.whatwg.org/#interface-formdata
console.dir(fd.get('test1')); // "aaa"
console.dir(fd.get('test2')); // "bbb"
console.dir(fd.get('test3')); // "ccc"

895 :Name_Not_Found:2015/09/30(水) 23:33:39.21 ID:???
相変わらず、質問者は回答放置だな

896 :Name_Not_Found:2015/10/01(木) 00:09:51.46 ID:???
最低でも12時間に1回はチェックして返せ

897 :892:2015/10/01(木) 11:27:17.66 ID:pSWoDq1l
>>894
ありがとう、それでちゃんと見れた。
…じゃあなんでサーバー側で取得に失敗するんだろうな?
これ以上は板違いになりそうだからここで聞くのはやめとく。

昨日は夕方まではチェックしてたんだが、その後に用事入ってしまったんで、
質問投げっぱなしで放置ととられてしまったのであれば、申し訳ない

898 :Name_Not_Found:2015/10/01(木) 12:47:19.66 ID:???
GC45 が FormData.prototype に append しかなくて泣いた。なぜ、こんな中途半端な実装なのだろう。

899 :Name_Not_Found:2015/10/01(木) 15:32:19.06 ID:???
フラグ立てりゃ使えるよ

900 :Name_Not_Found:2015/10/01(木) 15:56:37.72 ID:???
>>895
すいやせんしたぁーー!!!!

901 :Name_Not_Found:2015/10/01(木) 19:14:13.82 ID:???
>>900
ふざけるのも大概にしなさい。

902 :Name_Not_Found:2015/10/01(木) 20:16:28.00 ID:???
>>901
ごめんねごめんね〜

903 :Name_Not_Found:2015/10/01(木) 21:29:08.70 ID:???
>>902
五月蝿い、黙れ

904 :Name_Not_Found:2015/10/01(木) 22:29:40.67 ID:???
残念ながら、あなたの願いは、永遠に叶うことはありませんでした。

905 :Name_Not_Found:2015/10/01(木) 22:59:09.88 ID:???
web上の画像のurlを生成したaタグのhrefに設定して、download属性に任意の文字列を指定してダウンロードしたいのですが、
元のファイル名でダウンロードされてしまいます。なぜでしょうか

var a = document.createElement("a");
a.setAttribute("href", "+ JavaScript の質問用スレッド vol.125 + [転載禁止]©2ch.net ->画像>13枚
a.setAttribute("download", "mygorilla.jpg");
document.body.appendChild(a);
a.click();

906 :Name_Not_Found:2015/10/02(金) 02:07:40.96 ID:???
仕様を読めば分かる、名前を決めるに当たっての優先順位がある。

907 :Name_Not_Found:2015/10/02(金) 07:29:11.96 ID:???
仕様を読まないで質問してくる奴多いよな。
それとも読めないのか?
まず読む努力をしろ。

908 :Name_Not_Found:2015/10/02(金) 10:08:36.62 ID:3pDoF9XQ
今までLintツールとして JSHint 使っていたんだけど
試しに ESLint をとりあえずデフォルトでかけてみたら、Unexpected token だと叱られてしまった
たとえば、こういう let や const は間違いでしょうか?

const Pref = {
a: false,
b: true,
c: false
};

-------

for(let i = 0, n = items.length; i < n; i++){
str = items[i] + str;
}

909 :Name_Not_Found:2015/10/02(金) 11:02:20.48 ID:???
es6用のオプションじゃね?
しらねーけど

910 :905:2015/10/02(金) 12:32:25.78 ID:???
Content-Dispositionというhttpヘッダーが優先されることが分かりました。

ググってみると、chromeの拡張機能で使える
chrome.webRequest.onHeadersReceived.addListenerを使って書き換えている人がいましたが、これ以外には書き換える方法はないのでしょうか
(自分はブックマークレットとして実行したいと思っています)

911 :Name_Not_Found:2015/10/02(金) 19:10:57.93 ID:???
同オリジンならどうにでも出来る。そうでないならあきらメロン

912 :Name_Not_Found:2015/10/03(土) 18:43:29.17 ID:WazGST0c
ブログに貼ってるアドセンスを外部ファイル化してdocument.writeで書き出したいんだけど、アドセンスの外部ファイル化って何か問題ある?

913 :Name_Not_Found:2015/10/03(土) 18:50:19.84 ID:???
規約通り貼っているかの機械的なチェックに引っかかるからお金が入ってこない以外は問題ない

914 :Name_Not_Found:2015/10/03(土) 21:18:15.57 ID:???
そりゃ、おっかねぇ。

915 :Name_Not_Found:2015/10/03(土) 22:08:04.45 ID:???
>>912
問題ないよ
913は誤解しているよ

916 :Name_Not_Found:2015/10/04(日) 04:21:55.22 ID:???
いや、実際の体験談だから。
全てむこうのさじ加減。

917 :Name_Not_Found:2015/10/04(日) 11:52:48.36 ID:???
>>908
const でグローバルスコープで書けましたっけ。
どちらに原因があるか不明なので let と const を切り貼りして切り分けてみては?

918 :Name_Not_Found:2015/10/04(日) 18:36:42.40 ID:???
javascriptにはrubyでいう式展開のような機能はありますか?

name = "foo"
p "私の名前は#{name}です"

919 :Name_Not_Found:2015/10/04(日) 18:46:02.33 ID:???
>>918
テンプレートリテラルといって、バッククオートで囲えばそのような機能が使えます。
ただし最近の仕様で追加された構文なので、非対応ブラウザは多いです。
var name = "foo";
console.log(`私の名前は${name}です`);

920 :Name_Not_Found:2015/10/04(日) 18:50:06.92 ID:???
ES6から

var name = "foo";
document.write(`私の名前は${name}です`);

といった具合にバッククオートで囲むと出来る
モダンブラウザなら多分使える

921 :Name_Not_Found:2015/10/04(日) 18:50:46.35 ID:???
かーぶった

922 :Name_Not_Found:2015/10/04(日) 19:00:52.09 ID:???
そろそろES6は普通に回答に取り入れても良さそうだな。
HTML5始まった時も、散々そのAPIは〜では使えない云々と喧嘩になったが
仕様が策定されて少したった頃にはほぼ無くなってたし。
ES6も次スレからは標準でいいな。

923 :Name_Not_Found:2015/10/04(日) 19:21:17.19 ID:???
var text = '私の名前は{name}です';
var name = 'foo';
window.console.log(text.replace('{name}',name));
言語仕様で勝手に置き換えてくれるのを望まないならこれでもよくね?

変数text使いたくないならこれでもいい
window.console.log('私の名前は{name}です'.replace('{name}',name));

924 :908:2015/10/04(日) 20:26:06.39 ID:AzNv51BQ
>>917
Unexpected token let と Unexpected token const は 別々のエラーなので
切り分けはされています(サンプルコードも別ファイルであると示したつもりでした)
Firefox 専用のスクリプトを書いてるのですが、const についてはどうも独自仕様らしいです

const - JavaScript | MDN
https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Statements/const

ES6 の const は let と同様のスコープとのことなのでそれでエラーにされてるのだと思います
現状の eslint 使うなら var に直すしかなさそうです

let の件ですが、通常のブロックスコープで変数宣言する際にはエラーは出ていません

let - JavaScript | MDN
https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Statements/let

↑にfor の ループ変数で let 使う例がありますし、これをエラーにされるのは困ります
eslinht の ルールのどれか無効にすればエラー回避できるものやら判断つきません

List of available rules - ESLint - Pluggable JavaScript linter
http://eslint.org/docs/rules/

まだ jshint ってことなんですかねえ

925 :Name_Not_Found:2015/10/04(日) 20:51:07.02 ID:???
a = (function(){
var x = 'xxx';
function y(){}

return {x:x, y:y};
})();

グローバル空間を汚さないように、無名関数に封じ込めて、
returnで外部に公開する、と書いてあるけど、
これはどういう意味・使い方をするの?

こういう使い方でいいの?
a.x; a.y();

926 :Name_Not_Found:2015/10/04(日) 20:53:07.81 ID:???
>>918
テンプレートリテラルでできる。

っていうのは他の人も言ってるけど、
ES6だから使えないブラウザの方が多いって言ってるよね?

実は使う方法があります。Babelというトランスコンパイラを使います。
Babelを使うとES6をES5のコードに変換してくれるので、
多くのブラウザで動作させることが出来ます。

これが一番現実的かな。

927 :Name_Not_Found:2015/10/04(日) 20:55:41.71 ID:???
私が趣味でwebサイトの作成を始めたことは、タブレットとスマホが普及して
なかった頃で、pcから回覧することを目的にした非公開のwebサイトを作って
遊んでますが、最近、スマホとタブレットで回覧するwebサイト作成をやろうと
思うのですが、スマホ、タブレット、pcを判定して3種類のcssのから1つを
適用するってやり方ってJavascriptでやってるのでしょうか?

928 :Name_Not_Found:2015/10/04(日) 20:57:09.22 ID:???
>>923
nameだけならそれでもいいけど、
複数の変数があったら面倒だね。

本格的にやろうと思ったら、lodashとか使ったほうが良さそう。

https://lodash.com/docs#template

var compiled = _.template('hello <%= user %>!');
compiled({ 'user': 'fred' });
// → 'hello fred!'

929 :Name_Not_Found:2015/10/04(日) 21:08:25.28 ID:???
使えないブラウザの方が多いってなんだろうか?
IE8にTVやゲーム機、ガラケー等を入れたらES5すらまともに使えないブラウザの方が多いんだけど?

930 :Name_Not_Found:2015/10/04(日) 21:09:20.48 ID:???
>>927
通常はCSSを使います。

まず、スマホ、タブレット、pcで判定はしません。ユーザーエージェントでの判定もしません。

画面の大きさ(ピクセル)で判定します。このピクセルはデバイスの解像度ではありません。
例えばRetinaディスプレイ(1080 ? 1920)のiPhone6 Plusのピクセルは414 ? 736です。
http://s-ej.com/glossary/resolution.html
http://www.atmarkit.co.jp/ait/articles/1308/29/news004.html

そしてCSSのメディア クエリを使って適用するCSSを分岐させます
画面の幅が○ピクセル以下の場合とか縦向きなのかといった条件に
当てはまるものだけ適用するCSSを書くことが出来ます。

931 :Name_Not_Found:2015/10/04(日) 21:11:53.60 ID:???
>>929
> IE8にTVやゲーム機、ガラケー等を入れたらES5すらまともに使えないブラウザの方が多いんだけど?

その場合は、Babelに加えて、ES3でES5を動かせるようにする
ライブラリ(polyfills)を入れれば殆どの機能がES3で動きますよ。

932 :Name_Not_Found:2015/10/04(日) 21:15:37.69 ID:???
>>929

> (ES6を)使えないブラウザの方が多いってなんだろうか?
> IE8にTVやゲーム機、ガラケー等を入れたらES5すらまともに使えないブラウザの方が多いんだけど?


(ES6を)使えないブラウザの方が多いってなんだろうか?と言われても
ES5ですら使えないブラウザが多いんだから、
ES6を使えないブラウザの方が多いんですよとしか言えないと思うが?

933 :Name_Not_Found:2015/10/04(日) 21:23:33.99 ID:???
>>930
ありがとうございます。

934 :Name_Not_Found:2015/10/04(日) 21:52:25.52 ID:???
>>927
理想を言えば、初期化時にデバイスを調べて、
font-size:32px ,64px とか決めたら、

その後は、%, em などの相対値を使えば、
ソースコードを共通化できる

ただ、スマホは、縦横がコロコロ変わるから大変

935 :Name_Not_Found:2015/10/04(日) 23:05:03.57 ID:???
世界的に見たら圧倒的にChrome
国内じゃいまだIE人気のシェアが1/3以上とIE人気が収まらない
これからEdgeに置き換わっていくはずだが
あと5年はレガシーを考慮しないとだめだろうな

936 :Name_Not_Found:2015/10/05(月) 00:16:06.41 ID:???
>>934
> その後は、%, em などの相対値を使えば、
> ソースコードを共通化できる

ついでに言うとremが便利。ただしIE8では対応していない。
一応IE8でremを使えるライブラリがあるが
もちろん完璧ではない。

そこら辺をうまく解決しようと思ったら、
sassとか使うって話になってくる。

937 :Name_Not_Found:2015/10/05(月) 05:06:17.66 ID:???
>>935
ダメということはないと思う
自分はもう考慮してないよ

938 :Name_Not_Found:2015/10/05(月) 05:29:14.46 ID:???
>>937
サイトが見れないというお客さんのクレームに
対してはなんと返信しているのですか?

939 :Name_Not_Found:2015/10/05(月) 17:28:55.69 ID:???
>>938
サイトは見れるでしょ。
当然JSOFFでも最低限の動作は出来るように作るんだから。

940 :Name_Not_Found:2015/10/05(月) 18:52:35.42 ID:???
整数が入ってる入ってないかわからない変数aの存在判定をしたいんだけど

if (a)
if (typeof a === 'number')

パフォーマンス込みでどっちがいいのかな
アバウトな判定するとバグが出そうだからあまりやりたくないんだがやっぱり上の方がはやい?

941 :Name_Not_Found:2015/10/05(月) 20:56:14.10 ID:???
>>939
殆どのお客さんはJavaScript OFFにはしてないです。
ほかのサイトでも影響でますから。

サイトが見れないというクレームに対して
JavaScript OFFにしてくださいって返信するんですか?

942 :Name_Not_Found:2015/10/05(月) 20:58:23.40 ID:???
>>940
> パフォーマンス込みでどっちがいいのかな

パフォーマンスで書き方を決めたいと言い出したら
それは考えを改めろということにしてる。

アルゴリズムを変えるというのなら話は別だが、
単なる書き方程度で影響になるほどのパフォーマンスはでない。

だからメンテナンス性が高い方にしなさい。

943 :Name_Not_Found:2015/10/05(月) 21:09:21.45 ID:???
そんなに変わらないならちゃんと判定するわ
ありがと

944 :Name_Not_Found:2015/10/05(月) 21:35:28.53 ID:???
速度ぐらい自分で測定できるでしょ

945 :Name_Not_Found:2015/10/05(月) 22:27:37.98 ID:???
テンプレにjsPerf入れときゃいいんでね

946 :Name_Not_Found:2015/10/06(火) 04:26:35.23 ID:???
質問です。
Google Chromeだと動作しないウェブコンテンツがあるのですが、
「使用ブラウザを判別して誘導用メッセージを出す」以上のことは出来るでしょうか。

上記メッセージとともに
「IE(Edge)で開く」「Safariで開く」のようなボタンを表示するのが一番の理想です。

もしJavaScript以外でなら実装可能という場合は、
そちらのスレや板に誘導していただければと思います。

947 :Name_Not_Found:2015/10/06(火) 04:36:02.94 ID:???
次スレ

+ JavaScript の質問用スレッド vol.126 + [転載禁止](c)2ch.net
http://peace.2ch.net/test/read.cgi/hp/1439005423/

948 :Name_Not_Found:2015/10/06(火) 04:42:37.48 ID:???
>>946
古いIEを考慮しないって言っている人もいるし、
Chromeを考慮しないのもありじゃね?
古いIEを切り捨てるよりも被害は小さいだろうし。

949 :Name_Not_Found:2015/10/06(火) 05:19:27.42 ID:???
>>948
考慮しないというか、そのウェブコンテンツがNPAPIを使用しているから
Chromeで動作しないのは確定事項なのよね。
その上で、Chromeなら「他ブラウザを使ってね!」という誘導メッセージを出してる状態。

他ブラウザを立ち上げて、URLコピペして……ってのは意外に手間でさ。
なんかスマートな方法無いかなあって。

950 :Name_Not_Found:2015/10/06(火) 05:29:46.90 ID:???
Chromeで動作しないとか原因特定して修正したほうがいいよ絶対
IEのシェアがいまだ多いといっても11のことで
8あたりになると2〜3%ぐらいだから
30%超のChromeを切るのはCOOLじゃないぜ

951 :Name_Not_Found:2015/10/06(火) 05:31:47.91 ID:???
リロードしてなかったわ
PPAPIもつくってくだし

952 :Name_Not_Found:2015/10/06(火) 05:36:12.84 ID:???
npapiって何よそれ?

953 :Name_Not_Found:2015/10/06(火) 05:42:20.91 ID:???
普通に考えてブラウザから人のコンピューターに入ってるアプリケーションを起動させることができたら危ないだろ
ActiveXとか危ないやつはできるけどあれはIEの機能だ

954 :Name_Not_Found:2015/10/06(火) 05:49:47.06 ID:???
>>950
少し前に、ChromeがNPAPIを切り捨てたのよ。
https://support.google.com/chrome/answer/6213033?hl=ja

NPAPI切り捨ては他ブラウザも追従していくだろうから、代替技術に移行してくとは思うんだけど、
フレームワークやら速度やらで、現状では「ハイ今日から移行します」とは言えないのが残念

955 :Name_Not_Found:2015/10/06(火) 06:00:38.66 ID:???
俺もリロードしてなかったわ

>>952
プラグイン(FxアドオンやChrome拡張とは異なる)に関する技術の1つだと思っとくれ

>>953
まあそうなんだけどねー。それだけにモヤモヤしてる。

956 :Name_Not_Found:2015/10/06(火) 08:16:38.67 ID:???
>>946
無理

957 :Name_Not_Found:2015/10/06(火) 10:09:47.78 ID:???
>>941
それは具体的にどういう状態を想定してるの?
同じ言葉繰り返しても伝わる物は増えないよ。

958 :Name_Not_Found:2015/10/06(火) 10:13:39.58 ID:???
>>949
NPAPIはEdgeもそうだけどFirefoxもSafariもまもなく完全に切り捨てる予定
残る選択肢としてはWindowsならEdgeじゃなくてIE11を使って貰うしか無い

959 :Name_Not_Found:2015/10/06(火) 11:41:49.59 ID:???
NPAPI としか言ってないけど、具体的にどのプラグインが必要なのか?
Flash Player は PPAPI であるし
Java か?

960 :Name_Not_Found:2015/10/06(火) 11:51:55.59 ID:???
未だNPAPIを使ってる奴に
Chromeが多数派だからとかNPAPIはオワコンとか言ってもしょうがないし、
結論としてはもう決まってる。
『このサイトはレガシー技術を使っています。申し訳ありませんがIEで閲覧ください』
と書くしかない。

961 :Name_Not_Found:2015/10/06(火) 12:04:02.09 ID:???
>>941
おそらく、>>939の言葉足らずで誤解があるように思います。
>>939の「JSOFFでも最低限の動作は出来るように作る」は "Progressive Enhancement" または "Unobtrusive JavaScript (控えめな JavaScript)" を指していると思われます。
http://website-usability.info/2010/06/entry_100606.html
http://www.ibm.com/developerworks/jp/web/library/wa-aj-unobtrusive/

ただし、「控えめな JavaScript」で書いていたとしても旧来のブラウザが実装コードの一部分だけサポートしている為に意図せず部分的に機能してしまう場合があります。
従って、最新ブラウザで動くように作れば、最新昨日をサポートしないブラウザはJS-Offと同じ状態になると判断するのは早計です。
各ブラウザのサポート状況を把握し、旧来のブラウザではバージョン別に機能を完全に無効化させるか部分的に機能させるかを判断する必要が在ります。
つまり、旧来のブラウザでも最低限動くようにするなら「最新ブラウザだけを考慮すれば良い」という結論にはならないですね。

962 :Name_Not_Found:2015/10/06(火) 12:56:09.30 ID:???
>>959
Unity Web Player。ゲームじゃないけどね。

WebGL用で出力するという方法もあるけど、対応状況はまだまだな感じ。
開発環境によっては出力すら出来ない場合もあるし。

963 :Name_Not_Found:2015/10/06(火) 13:39:09.32 ID:???
今は全部まるっと固めて出力してるからサイズでかいらしいな
そのうちUnityも拡張機能化するんじゃない

964 :Name_Not_Found:2015/10/06(火) 14:55:39.40 ID:???
>>961
そんなこと言ってたらキリがないよ
旧来のブラウザでも最低限動くようにするなら当然旧来のブラウザでも表示確認はするわけで
そういうことは起き得ない

965 :Name_Not_Found:2015/10/06(火) 15:05:14.43 ID:???
何度も言っているが0か1かで決めようとするのはプログラマの悪い癖。
ここでまで出てきた全ての論は自身に都合のいい仮定を前提としたもので自己満足以外の何物でもない。

966 :Name_Not_Found:2015/10/06(火) 15:10:23.47 ID:???
>>962
無理なことを幾らここでゴネても仕方がない。
HTML5形式で変換しても動くように作るか、UnityチームにPPAPI化を検討するか
PlayerをインストールしてIEで閲覧くださいと言うかしかない。

>>963
UnityはWeb Assemblyの方向性。

967 :Name_Not_Found:2015/10/06(火) 15:54:12.04 ID:???
もう JavaScript 云々以前の話になってる

968 :Name_Not_Found:2015/10/06(火) 16:09:30.89 ID:???
いつものこと

969 :Name_Not_Found:2015/10/06(火) 19:51:34.86 ID:???
>>958
まじかfirefoxもかよ。NPAPIの
WebRtcつかえるブラウザなくなっちまう

970 :Name_Not_Found:2015/10/06(火) 19:53:16.72 ID:???
javascriptの勉強したいけど、基本情報の試験勉強に手間取ってる
基本情報にJavascriptがあればいいんだが、C言語、Javaとかしかない

971 :Name_Not_Found:2015/10/06(火) 20:15:59.49 ID:???
phpしか使えなかったころjavaで受けたが余裕で受かったぞ
他の言語で基礎が出来てりゃ
ちょっと基本的な仕様おさえるだけで問題ないレベルに仕上がってる
今はexcelとかもあって合格率も伸びてんだから簡単なんじゃねえの

972 :Name_Not_Found:2015/10/06(火) 20:28:28.71 ID:???
java?

973 :Name_Not_Found:2015/10/06(火) 20:43:38.43 ID:???
基本情報だなんて殆ど役に立たん物取ってる暇があったら、
面接の時より良いサンプルを提示できるように勉強した方がいい。

JavaScriptでやって行きたいならなおのこと。

974 :Name_Not_Found:2015/10/06(火) 20:46:34.02 ID:???
派遣技術者やってるもので
やる気と、情報の基本がわかってますアピールで
基本情報が必要です。
Javascriptってなんかアピールしずらい。

975 :Name_Not_Found:2015/10/06(火) 21:12:06.09 ID:???
Javascriptって書くようなレベルだからアピールするものが無いんじゃないかという煽りは置いといて、
新卒でもない即戦力が期待されるような場所では尚更資格より実績や実力が重視される。
例えば〜のライブラリ使ってこんなことをしたことがあります、とかね。

976 :Name_Not_Found:2015/10/06(火) 21:28:18.59 ID:???
>>964
旧来のブラウザで動作確認しているならいいと思いますよ。
「旧来のブラウザは考慮してないけど動作するはずだ」という論調が気になっただけなので。
そのやり方なら旧来のブラウザも考慮した上で最新機能をサポートしないといえば齟齬が発生しなかったように思いますね。

977 :Name_Not_Found:2015/10/06(火) 21:35:01.83 ID:???
いい加減スレチだがせめて推敲してから書け
上でもいたが自分が何言ってるか分からないけどとにかく反論しなくちゃと
脳が錯乱してるんだろうな

978 :Name_Not_Found:2015/10/06(火) 21:52:52.59 ID:???
資格は重要視されるけど基本情報とかそんなんじゃなくてもっと実用的なものじゃないと
情報系の資格は難易度ではかるもんじゃないから
基本より難易度が低い資格で基本以上に評価されるものはたくさんある
JavaScriptの場合CIW JavaScript Specialistとったほうが断然いいよ
このスレ見てるやつなら勉強すればだいたい受かるんじゃね

979 :Name_Not_Found:2015/10/06(火) 22:08:18.13 ID:???
現実は悲しきかな、面接官に何それ?って言われる可能性が高いと思う
jQueryができるかできないか以外はどうでもいいところが多そう

980 :Name_Not_Found:2015/10/06(火) 22:15:07.99 ID:???
>>977
おまえの頭が心配だ

981 :Name_Not_Found:2015/10/06(火) 22:46:17.38 ID:???
まーた具体性のない煽り合いが始まったか。

982 :Name_Not_Found:2015/10/06(火) 23:58:35.66 ID:???
古いブラウザの場合、機能無効にするようなコードを書くということは
>>937がいっているような「考慮してないよ」にはならないということです。

古いブラウザ用のコードが有り、動作しないように考慮しているってことになります。
当然古いブラウザで機能無効になっているというテストも必要になります。
本当に考慮していないならばテストの工数が不要になります。
ここ重要なところです。

983 :Name_Not_Found:2015/10/07(水) 00:41:00.03 ID:???
話の流れ的にここでの考慮しないとは、
レガシーがあることを気にして未サポートの機能をそのまま使わないということはしない
つまり非対応の機能を使うということでしかなくて
その結果全般に渡って正常な動作をしないことまでもを気にしないと捉えるのは飛躍しすぎだと思う

984 :Name_Not_Found:2015/10/07(水) 00:57:29.92 ID:???
具体性どころか相手のいない煽り合いだろう

いつまでも話を引きずらないでここで終了しろよ

985 :Name_Not_Found:2015/10/07(水) 01:39:24.05 ID:???
*投了*

986 :Name_Not_Found:2015/10/07(水) 02:14:34.34 ID:???
もともとの話は>>935

> 世界的に見たら圧倒的にChrome
> 国内じゃいまだIE人気のシェアが1/3以上とIE人気が収まらない
> これからEdgeに置き換わっていくはずだが
> あと5年はレガシーを考慮しないとだめだろうな

答えは、レガシーを考慮しないとだめということ。

レガシーを考慮する=レガシーでもモダンブラウザと全く同じ
機能を提供するということでははない。

レガシーでも基本的な機能は問題なく使用できる。
レガシーの場合はレガシー版を提供するということ

987 :Name_Not_Found:2015/10/07(水) 02:23:45.55 ID:???
元々の話はテンプレートリテラルもといES6の機能を使うことの是非についてだよ
機能を使うか決めるにあたってレガシー環境を考慮しないこと
別にどんな場面でもレガシー環境を切り捨てていいとは言っていないし
そういう意味じゃないよということはすぐに>>939で言ってるでしょ

988 :Name_Not_Found:2015/10/07(水) 02:29:49.97 ID:???
って粘着君に正論言ってもどうせここまでのように聞く耳持たないか
もう君の言う通り、思う通りで正しくて、俺が誤ってたってことにして無駄な争いを終わろうね

989 :Name_Not_Found:2015/10/07(水) 02:47:01.13 ID:???
このスレのテンプレは一体何のためにあるのだろう
そもそもここは議論スレじゃなくて質問スレじゃなかったのか?

990 :Name_Not_Found:2015/10/07(水) 03:39:54.99 ID:???
>>1の(3)を読むといいんでないかね

991 :Name_Not_Found:2015/10/07(水) 03:56:12.10 ID:???
Babelができたんだから、レガシーブラウザでも変換すれば使えるわけで
テンプレートリテラルは使えるということでいいと思うんだがな。
Babelを使うことがレガシーを考慮するということだと思う。

今話してるのはAPIがそもぞも存在しない、Polyfillもできないものの話でしょ?
そういうのはまだ使うべきじゃない。これもレガシーを考慮するということ。

992 :Name_Not_Found:2015/10/07(水) 07:14:19.30 ID:???
一体どこの誰がそんなもの話してるんだろう???

993 :Name_Not_Found:2015/10/07(水) 07:24:01.81 ID:???
結果的にそういうことでしょ? BabelやPolyfillで対応できるものは
レガシーブラウザにも考慮していることになる。

で、レガシーブラウザを考慮しないものは?
残ったものだよ。

994 :Name_Not_Found:2015/10/07(水) 07:59:58.23 ID:???
はい、終了終了
レス番名乗った話題主がいないのにいつまで引っ張るつもりだよ

995 :Name_Not_Found:2015/10/07(水) 08:06:24.90 ID:???


996 :Name_Not_Found:2015/10/07(水) 08:12:05.96 ID:???
>>APIがそもぞも存在しない、Polyfillもできないもの
君がそんな未知な誰にも良くわからないものを想定して話してたのなら話がこじれるのは当たり前。

それは具体的に、どの機能について言ってるの?

それにさ、その使うべきじゃないっていうのは君の想定するレガシーな業務での話でしょ?

実際モダンブラウザを要求するサービス/アプリはたくさんある訳でそれらを全て否定する気?

何度も書いてるけど自分に都合の良い仮定を相手に押し付けて話を進めるのはやめなさい。

997 :Name_Not_Found:2015/10/07(水) 08:28:21.84 ID:???
どうでもいいけどこの流れを次スレまで引きずるのは簡便な
↓残り好きなだけ言いたいこと書いて埋めて終わりにしてくれ

998 :Name_Not_Found:2015/10/07(水) 08:46:21.44 ID:???
>>APIがそもぞも存在しない、Polyfillもできないもの
ProxyとかsetPrototypeOfとか?
レガシーってのにIE8も入れるのならES5のプロパティディスクリプタ系もアウトだけど

999 :Name_Not_Found:2015/10/07(水) 10:22:08.46 ID:???
次スレ

+ JavaScript の質問用スレッド vol.126 + [転載禁止](c)2ch.net
http://peace.2ch.net/test/read.cgi/hp/1439005423/

1000 :Name_Not_Found:2015/10/07(水) 10:23:16.02 ID:???
>>998
プロパティディスクリプタはあれば便利だけど
別にプロパティディスクリプタを使うことが目的になることはないので
別のやり方でどうとでもできる。

1001 :1001:Over 1000 Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。

mmpnca
lud20160204023234ca
このスレへの固定リンク: http://5chb.net/r/hp/1436910657/
ヒント:5chスレのurlに http://xxxx.5chb.net/xxxx のようにbを入れるだけでここでスレ保存、閲覧できます。

TOPへ TOPへ  

このエントリをはてなブックマークに追加現在登録者数177 ブックマークへ


全掲示板一覧 この掲示板へ 人気スレ | Youtube 動画 >50 >100 >200 >300 >500 >1000枚 新着画像

 ↓「+ JavaScript の質問用スレッド vol.125 + [転載禁止]©2ch.net ->画像>13枚 」を見た人も見ています:
+ JavaScript の質問用スレッド vol.115 +
+ JavaScript の質問用スレッド vol.105 +
+ JavaScript の質問用スレッド vol.135 +
+ JavaScript の質問用スレッド vol.125 +
+ JavaScript の質問用スレッド vol.123 +
+ JavaScript の質問用スレッド vol.124 +
+ JavaScript の質問用スレッド vol.124 +
+ JavaScript の質問用スレッド vol.126 +
+ JavaScript の質問用スレッド vol.120 +
+ JavaScript の質問用スレッド vol.121 +
+ JavaScript の質問用スレッド vol.117 +
+ JavaScript の質問用スレッド vol.121 +
+ JavaScript の質問用スレッド vol.129 +
+ JavaScript の質問用スレッド vol.123 +
+ JavaScript の質問用スレッド vol.122 +
+ JavaScript の質問用スレッド vol.136 +
+ JavaScript の質問用スレッド vol.132 +
+ JavaScript の質問用スレッド vol.139 +
+ JavaScript の質問用スレッド vol.123 +
+ JavaScript の質問用スレッド vol.129 +
+ JavaScript の質問用スレッド vol.129 +
+ JavaScript の質問用スレッド vol.133 +
+ JavaScript の質問用スレッド vol.122 +
+ JavaScript の質問用スレッド vol.131 +
+ JavaScript の質問用スレッド vol.141 +
+ JavaScript の質問用スレッド vol.141 +
+ JavaScript の質問用スレッド vol.134 +
+ JavaScript の質問用スレッド vol.127 +
+ JavaScript の質問用スレッド vol.137 +
+ JavaScript の質問用スレッド vol.138 +
+ JavaScript の質問用スレッド vol.131 +
+ JavaScript の質問用スレッド vol.144 +
+ JavaScript の質問用スレッド vol.143 +
+ JavaScript の質問用スレッド vol.140 +
+ JavaScript の質問用スレッド vol.124 +
+ JavaScript の質問用スレッド vol.129 +
+ JavaScript の質問用スレッド vol.142 +
+ JavaScript の質問用スレッド vol.142 +
+ JavaScript の質問用スレッド vol.130 +
+ JavaScript の質問用スレッド vol.129 +
+ JavaScript の質問用スレッド vol.126 +
+ JavaScript の質問用スレッド vol.118 +
+ JavaScript の質問用スレッド vol.129 +

人気検索: アイドル水着 繧「繝ウ繧キ繝? panties 14 year porn video 繝ュ繝ェ繝シ繧ソ 洋2015 アウ洋あうアウロリ Sex jb あうあう女子小学生エロ画像 Children porn 洋ロリ画像
16:27:16 up 6 days, 43 min, 0 users, load average: 9.16, 8.29, 8.24

in 0.035234212875366 sec @0.035234212875366@0b7 on 091405