[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 1001- 2ch.scのread.cgiへ]
Update time : 12/07 09:57 / Filesize : 397 KB / Number-of Response : 1030
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

+ JavaScript の質問用スレッド vol.120 +



1 名前:デフォルトの名無しさん mailto:sage [2016/05/22(日) 19:51:33.37 ID:WwOYSBmy.net]
JavaScript を自ら学ぶ人のための質問スレッドです。
>>2-4のテンプレを読んだ上で質問してください。次スレは>>950>>2のテンプレ案(本スレで改善案があれば考慮)を元に立ててください

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

710 名前:デフォルトの名無しさん mailto:sage [2016/06/15(水) 17:24:42.09 ID:uCNYQdtw.net]
一日中こんなところでくだらん連投して何が楽しいの?
仕事でも探せば?

711 名前:デフォルトの名無しさん mailto:sage [2016/06/15(水) 17:35:48.15 ID:SSaOcc+i.net]
>>690
そうそう。
すでにクローン済みとメモ化するにも、ネストしたオブジェクトの底の方で発見したオブジェクトと、浅い所で発見したオブジェクトに対して、再起だと上にメモを返してやらないと、同一参照にはならんので、割とめんどくさいと思うよ。

吹き飛ばすのが一番、かつ、そんなデータを作らないのが一番と言う所に落ち着くんじゃないかな。

712 名前:デフォルトの名無しさん mailto:sage [2016/06/15(水) 18:40:06.70 ID:kCCRbfye.net]
一番面倒なのは外部プロパティに加え内部プロパティを持ったビルトインコンストラクタのインスタンスだろう。
それを複製するにはそれぞれのクラスごとに対応しないといけないし、その最たるものである関数は対処不能。

>>690
ちょっと工夫すればJSON APIを活用しつつも循環参照も扱える
>>656みたいに(バグあり)

713 名前:デフォルトの名無しさん mailto:sage [2016/06/15(水) 23:17:16.03 ID:wTcNi+2O.net]
>>689
> シリアライズでサッサと済ませればいいじゃん

だから、その結果、日付型がおかしくなり関数が消え
undefinedの値がキーごとなくなるのはひどすぎという話。

714 名前:デフォルトの名無しさん mailto:sage [2016/06/16(木) 07:45:47.42 ID:oMjTOMdB.net]
それで十分な場面はそうでない場面よりずっと多いと思うので、
酷いか酷くないかで言うと酷くないと思う。

715 名前:デフォルトの名無しさん mailto:sage [2016/06/16(木) 09:28:45.12 ID:J7Y57E8z.net]
>>694
何でもかんでも汎用化しようとするのはヴァカのやる事だし
そもそも込み入った形式のオブジェクトをディープコピーする機会は少ない
適用可能な範囲で簡単に実装できるならそうしたほうがいい
できない範囲にはポリモーフィックに対応すればいい

716 名前:デフォルトの名無しさん mailto:sage [2016/06/16(木) 09:30:35.19 ID:u57UUEr0.net]
>>696
日付型や関数はundefinedが値として入っているのは
ぜんぜん込み入った形式じゃないですよ?

717 名前:デフォルトの名無しさん mailto:sage [2016/06/16(木) 12:30:42.86 ID:TTOq9A9Q.net]
>>697
設計が悪いだろ。そりゃデータとロジックが分離できてないとしか言いようが無くないか?

718 名前:デフォルトの名無しさん mailto:sage [2016/06/16(木) 15:06:47.71 ID:peThILAI.net]
ディープコピー使ったコードも8割方設計がまずい気がする



719 名前:デフォルトの名無しさん [2016/06/16(木) 19:02:21.99 ID:ykd7wui8.net]
iOS9のSafariでWebを見た時、リーダーが使えず
以下のURLを参考にフォントを拡大して使っています。
iOSのSafariで表示してるページの文字の大きさを自由に変更しよう!
mag.torumade.nu/?p=7260
ここにあるJavaScriptの+/ーそれぞれの記述ですが、
フォントを多きく/小さくしている箇所は何処でしょうか?
今は2,3回ポチって文字を大きくしています。
出来ればポチったら一発で好みの文字の大きさにするスクリプトにしたいです。

JavaScriptで文字の大きさを買えるのに、試行するのは構いませんので
宜しくお願いします。
JavaScriptは書いたこと無いので、ここでの記述をコピペになると思います。

720 名前:デフォルトの名無しさん mailto:sage [2016/06/16(木) 21:35:26.83 ID:DYttMfqr.net]
めんどくさいしこれでいいよ
まともな造りしてればまあ読めるだろ
大きさ変えたいなら 20px を好きな値にしな

javascript:document.body.innerHTML+='%3Cstyle%3E*%7Bfont-size:20px!important%7D%3C/style%3E';

721 名前:デフォルトの名無しさん mailto:sage [2016/06/16(木) 22:07:33.10 ID:u57UUEr0.net]
>>698
> 設計が悪いだろ。そりゃデータとロジックが分離できてないとしか言いようが無くないか?

日付やundefinedはデータですよ?
これをロジックと言い張る人、初めて見たわーwww

722 名前:デフォルトの名無しさん mailto:sage [2016/06/17(金) 00:16:54.38 ID:XW0r+pFS.net]
>>702
関数、に言ってるんだけど。
とにかく言い負かされたくなくて必死なんだな。
あと、undefinedは正確にはデータではなく、状態。
日付は、日付。Dateクラスは、日付を扱うためのクラスであり、日付の値では無い、あくまで値は、.valueOf()で取得できる値。

ババロア君は馬鹿か無知かどちらかにしとけよ。ババロアすら詰まってないんじゃねえの?

723 名前:デフォルトの名無しさん mailto:sage [2016/06/17(金) 00:31:17.80 ID:gkJjvuAc.net]
>>703
なんで3つのうち関数にしか言わないの?

残り2つは反論できませんって話かwww

724 名前:デフォルトの名無しさん mailto:sage [2016/06/17(金) 00:33:59.24 ID:gkJjvuAc.net]
"abc".bold() って実行してみ?
文字列は

725 名前:クラスだって知らないのかな?www []
[ここ壊れてます]

726 名前:デフォルトの名無しさん mailto:sage [2016/06/17(金) 00:46:16.36 ID:XW0r+pFS.net]
>>704
2つはその、下で反論してるけど。
文字も読めないの?

>>705
.valueOf実行してみ。
薄いラッパーに包まれたただの値だとわかるよ。

727 名前:デフォルトの名無しさん mailto:sage [2016/06/17(金) 00:47:44.33 ID:XW0r+pFS.net]
>>705
プロトタイプに実装されてるか、それともインスタンスに実装したのかも分けて考えような、ボンクラ。

728 名前:デフォルトの名無しさん mailto:sage [2016/06/17(金) 01:18:50.68 ID:gkJjvuAc.net]
>>706
日付.valueOf実行してみ。
薄いラッパーに包まれたただの値だとわかるよ。



729 名前:デフォルトの名無しさん mailto:sage [2016/06/17(金) 01:20:43.01 ID:gkJjvuAc.net]
>>707
> プロトタイプに実装されてるか
String.prototype.hoge = function() {} と定義したものが
"abc".hoge() で呼び出されるな。
プロトタイプに実装されてるわけか。

730 名前:デフォルトの名無しさん mailto:sage [2016/06/17(金) 01:38:53.96 ID:MlF9RYHU.net]
プリミティブ型とラッパーオブジェクトは別物だから明確に区別しとかないと事故るぞ
例えば以下の様なケース

if(new Boolean(false) && new Number(0)){
//どちらもオブジェクトが存在するのでtrue
//よってここは常に実行される
}
if(false || 0){
//どちらもプリミティブでfalseとして扱われる値
//よってこちらは実行されない
}

731 名前:デフォルトの名無しさん mailto:sage [2016/06/17(金) 02:49:55.65 ID:bQl7rsTf.net]
>>701
ありがとうございました。

732 名前:デフォルトの名無しさん mailto:sage [2016/06/17(金) 09:31:42.05 ID:srh2csoY.net]
>>710
いろんなJS質問スレ見てきてるが半年ぶりくらいに
まともな初心者解説のコードが書かれたな。

733 名前:デフォルトの名無しさん mailto:sage [2016/06/17(金) 16:34:23.27 ID:6iHig3Yk.net]
ゴミが持論書きなぐってるだけのクソスレに何を期待してるの?

734 名前:デフォルトの名無しさん mailto:sage [2016/06/17(金) 17:12:33.16 ID:BB7ZCZit.net]
動画サイトだけ自動でCSSを切り替えるために、動的に挿入されたiframe, video, object, embed エレメントを検出したいんですが、効率的な方法が思い浮かばず困っています
iframeとvideoはdocumentでイベントリスナ(load, loadedmetadata)すれば検出できるんですが、なぜかobjectとembedちゃんからのお便りが来ません(chrome ver51)
とりあえず暫定的にクリック毎にgetElementsByTagName()で代替しているんですが、
何かもっとスマートな方法ないでしょうか

735 名前:デフォルトの名無しさん mailto:sage [2016/06/17(金) 19:02:26.08 ID:Rqj2POSn.net]
MutationObserverで逐一tagName調べるのが無難かな

736 名前:デフォルトの名無しさん mailto:sage [2016/06/17(金) 19:29:30.69 ID:BB7ZCZit.net]
>>715
動画サイトの場合、オプション{childList true, subTree: true}でノード追加を監視すると、コンソールが常時ナイアガラの滝のように・・・

737 名前:デフォルトの名無しさん mailto:sage [2016/06/17(金) 19:41:50.28 ID:nZkVhJBc.net]
>>713
その通りだね
俺様流カレーライスの作り方みたいなもんだよねw

738 名前:デフォルトの名無しさん mailto:sage [2016/06/18(土) 02:23:30.51 ID:zfC6EzMS.net]
>>717
その俺様流カレーライスの作り方で、ドヤ顔でハヤシライスの作り方説明して、これが「妥当なカレーライス」とか言っちゃうような俺流deepcopyerが
主みたいなスレだからね。
まともな奴はレスしなくなるっしょw



739 名前:デフォルトの名無しさん mailto:sage [2016/06/18(土) 09:38:41.31 ID:Fpexe9SW.net]
ハヤシライスというより肉じゃがだと思う

740 名前:デフォルトの名無しさん mailto:!sage [2016/06/18(土) 09:43:04.22 ID:pG9pCEms.net]
"a,b,c".split(",",1)で、
["a","b,c"]を取得したいのですが、["a","b"]になります
どうすrばいいですか

741 名前:デフォルトの名無しさん mailto:sage [2016/06/18(土) 10:53:48.22 ID:49KWKmmu.net]
<input id="a" type="text">
document.getElementById('a').addEventListener('input', function(e) {
console.log(e);
}, false);

enterキーを押した時だけログがでないんですがどうしてですか?

742 名前:デフォルトの名無しさん mailto:sage [2016/06/18(土) 13:22:34.63 ID:z24FpIHh.net]
function test1() {
  return new Promise(function(resolve, reject) {
    // 非同期な処理
  };
}
function test2() {
  return new Promise(function(resolve, reject) {
    // 非同期な処理
  };
}
上記の関数を逐次実行したい場合、
Promise.resolve()
  .then(() => {
    let promise = test1();
    promise.then(() => {
      console.log('test1 OK');
    }).catch(function(e){
      console.log('test 1NG');
    });
    return promise;
  })
  .then(() => {
    let promise = test2();
    promise.then(() => {
      console.log('test2 OK');
    }).catch(function(e){
      console.log('test2 NG');
    });
    return promise;
  })
});
って書くってことであっていますか?意図通り動くのですが、回りくどいし見にくい気がして

743 名前:デフォルトの名無しさん mailto:sage [2016/06/18(土) 13:28:02.54 ID:z24FpIHh.net]
>>721
document.getElementById('a').addEventListener('keydown', function(e) {
  console.log(e);
}, false);

keydown にすればenterも拾える

744 名前:デフォルトの名無しさん mailto:sage [2016/06/18(土) 13:30:40.39 ID:qpxG5nAO.net]
>>722
そんなわけなかろうw
いまゲームしてるからちょっと待てwww

745 名前:デフォルトの名無しさん mailto:sage [2016/06/18(土) 13:32:40.70 ID:z24FpIHh.net]
>>720
splitだけでその配列を取得するのは無理

746 名前:デフォルトの名無しさん mailto:sage [2016/06/18(土) 13:33:55.65 ID:z24FpIHh.net]
>>724
お、ありがとうございます
たのんます

747 名前:デフォルトの名無しさん mailto:sage [2016/06/18(土) 13:40:53.70 ID:lYop9Jcb.net]
>>720
それ戻り値["a"]じゃね?
とりあえず脳内補正で第二引数は2だとするとjavascriptのsplitだとその希望の動作にはならない

第二引数なしでsplitして[t[0],t.slice(1).join(',')]とか
indexOfとsubstring組み合わせて自分で切り出すとか
他にも色々やり方はあるので要求に合った方法を考えて関数化しとけばいいよ

748 名前:デフォルトの名無しさん mailto:sage [2016/06/18(土) 13:48:58.73 ID:7whaN/tJ.net]
>>720
indexOfでインデックスを取得してslice



749 名前:デフォルトの名無しさん mailto:sage [2016/06/18(土) 13:49:03.57 ID:z24FpIHh.net]
722ですがこっちですかね、余計見にくいような気もしますが(アロー演算子のせい?)

test1().then(() => {
   return test2();
}, () => {
   console.log('1のNG');
}).then(() => {
   // 1 も 2 も成功
}, () => {
   console.log('2のNG');
}).catch(function(e){
   console.log('ここにはいつくるんだろう?');
});

750 名前:デフォルトの名無しさん mailto:sage [2016/06/18(土) 13:52:05.82 ID:ousMayNp.net]
>>722
thenの結果は自動でプロミスに変換されるから、function test2 のなかでプロミスを作らなくておk

シンプルにfunction test2(previousResult) { // 非同期な処理 return resTest2} としておいて

test1
.catch(resTest1 => resCatch1)
.then(test2)
.catch(resTest2 => resCatch2) 〜 とつなげればいい

一個目のcatchを省略した場合、 test1でエラーが起きると最後のキャッチにジャンプする

751 名前:デフォルトの名無しさん mailto:sage [2016/06/18(土) 13:54:20.50 ID:7whaN/tJ.net]
>>721
可能性はいくつかある
- input要素で [Enter] キーを押している
- IME変換時に [Enter] キー

752 名前:デフォルトの名無しさん mailto:sage [2016/06/18(土) 13:56:06.15 ID:ousMayNp.net]
>>729
thenの第二引数をcatchとして使うと、そのthenで起きたエラーは拾わなあいから、必要ないときはcatchを使ったほうがいいよ 分かり易いから

753 名前:デフォルトの名無しさん mailto:sage [2016/06/18(土) 13:56:58.21 ID:qpxG5nAO.net]
>>729
ほらよ。ついでに値の渡し方も書いておいたぞ。
thenの戻り値としてPromiseではないものを返せるところにも注意な。(return textの所)

あと、最初はPromise.resolveで始めなくても、いきなりtext1("sample").then でも良い。

function test1(text) {
  return Promise.resolve(text);
  //return Promise.reject(text);
}
function test2(text) {
  return Promise.resolve(text);
  //return Promise.reject(text);
}

Promise.resolve("sample")
 .then(text => test1(text))
 .then(text => {
  console.log("test 1 OK:" + text);
  return text;
 })
 .catch(text => {
  console.log("test 1 NG:" + text);
  return text;
 })
 .then(text => test2(text))
 .then(text => {
  console.log("test 2 OK:" + text);
 })
 .catch(text => {
 console.log("test 2 NG:" + text);
 });

754 名前:デフォルトの名無しさん mailto:sage [2016/06/18(土) 14:06:33.76 ID:qpxG5nAO.net]
ただ、一直線に書くとtext1とtext2の

755 名前:範囲なのかわかりづらいから
>>722を少し改良したこれでもいい気もしてきたな。

Promise.resolve("sample")
 .then(text => test1(text)
  .then(text => {
   console.log("test 1 OK:" + text);
   return text;
  })
  .catch(text => {
   console.log("test 1 NG:" + text);
   return text;
  })
 )
 .then(text => test2(text)
  .then(text => {
   console.log("test 2 OK:" + text);
  })
  .catch(text => {
  console.log("test 2 NG:" + text);
  })
);
[]
[ここ壊れてます]

756 名前:デフォルトの名無しさん mailto:sage [2016/06/18(土) 14:09:27.96 ID:qpxG5nAO.net]
なお、もちろんこう書くこともできるし

function test1(text) {
  let p = Promise.resolve(text);
  //let p = Promise.reject(text);
 return p.then(text => {
   console.log("test 1 OK:" + text);
   return text;
  })
  .catch(text => {
   console.log("test 1 NG:" + text);
   return text;
  });
}

function test2(text) {
  let p = Promise.resolve(text);
  //let p = Promise.reject(text);
 return p.then(text => {
   console.log("test 2 OK:" + text);
   return text;
  })
  .catch(text => {
  console.log("test 2 NG:" + text);
   return text;
  });
}

Promise.resolve("sample")
 .then(text => test1(text))
 .then(text => test2(text));

757 名前:デフォルトの名無しさん mailto:sage [2016/06/18(土) 14:18:57.19 ID:qpxG5nAO.net]
catchをthenの機能に含めて、こういう書き方もできる。

Promise.resolve("sample")
 .then(text => test1(text))
 .then(text => {
   console.log("test 1 OK:" + text);
   return text;
  }, text => {
   console.log("test 1 NG:" + text);
   return text;
 })
 .then(text => test2(text))
 .then(text => {
   console.log("test 2 OK:" + text);
  }, text => {
  console.log("test 2 NG:" + text);
 });

758 名前:デフォルトの名無しさん mailto:sage [2016/06/18(土) 14:27:30.76 ID:lYop9Jcb.net]
>>729
まずtest1とtest2の中の非同期でresolve(戻り値)またはreject(エラーの原因)を呼んでる事は前提とすると

function err(e){console.error(e);};
function finish(val){console.info("終了",val);};

test1().then(test2).then(finish).catch(err);

thenで第二引数を渡さなければrejectもcatchに飛ぶのでこれで充分なはずだけど?



759 名前:デフォルトの名無しさん mailto:sage [2016/06/18(土) 14:30:46.97 ID:qpxG5nAO.net]
 .then(text => test1(text)) は
 .then(test1) これでよかったな。

760 名前:デフォルトの名無しさん mailto:sage [2016/06/18(土) 14:38:51.52 ID:qpxG5nAO.net]
他にもいろいろ書き換えてみたけど、これが俺の中でベストかな

Promise.resolve("sample")
 .then(test1)
 .then(text => {
   console.log("test 1 OK:" + text);
   return text;
  }, text => {
   console.log("test 1 NG:" + text);
   return text;
  }
 )
 .then(test2)
 .then(text => {
   console.log("test 2 OK:" + text);
  }, text => {
   console.log("test 2 NG:" + text);
  }
 );

761 名前:デフォルトの名無しさん mailto:sage [2016/06/18(土) 14:51:32.54 ID:z24FpIHh.net]
皆さんありがとうございます。
まだ若干こんがらがってますが、理解がだいぶマシになりました。
test2はプロミスにしなくてOKということですが、
test2を単独で使用する可能性がある場合は今のままでも大丈夫ですよね...?

762 名前:デフォルトの名無しさん mailto:sage [2016/06/18(土) 14:52:59.75 ID:z24FpIHh.net]
皆さんのを参考に
function test1(text) {
 return new Promise(function(resolve, reject) {
  setTimeout(() => {
   reject(text);
  }, 1000);
 });
}
function test2(text) {
 return Promise.resolve(text);
}

Promise.resolve("sample")
test1("test")
 .then(text => {
  console.log("test 1 ok " + text);
  return text;
 }, text => {
  console.log("test 1 ng " + text);
  return text;
 })
.then(test2)
 .then(text => {
  console.log("test 2 ok " + text);
 })
 .catch(text => {
  console.log("test 2 ng " + text);
 });

こういうのを書いてみたのですが、
test1でrejectしてもそのままtest2に入ってきましたが、これはこういうものでしょうか?

763 名前:デフォルトの名無しさん mailto:sage [2016/06/18(土) 14:54:43.38 ID:z24FpIHh.net]
すみません、>>741の Promise.resolve("sample")は不要ですね

764 名前:デフォルトの名無しさん mailto:sage [2016/06/18(土) 15:02:45.38 ID:qpxG5nAO.net]
>>741
> test1でrejectしてもそのままtest2に入ってきましたが、これはこういうものでしょうか?

あれ?そういう仕様だと思ってたよw
じゃあ書き換えが必要だね。

いまゲームしてるから(ry

765 名前:デフォルトの名無しさん mailto:sage [2016/06/18(土) 15:15:57.87 ID:HfDVf1Az.net]
>>741
www.html5rocks.com/ja/tutorials/es6/promises/

766 名前:デフォルトの名無しさん mailto:sage [2016/06/18(土) 15:28:56.46 ID:z24FpIHh.net]
何度もすみません。
>>743-744
ありがとうございます、そのサイト見てたはずですが見落としていました
だいたい理解できました。
一連の質問は解決ということで問題ないです。

皆さんありがとうございました。

767 名前:デフォルトの名無しさん mailto:sage [2016/06/18(土) 23:31:55.96 ID:aNvZce14.net]
imeオンオフに関わらずEnterキーが入力されたか確認する方法を教えてください

768 名前:デフォルトの名無しさん mailto:sage [2016/06/19(日) 01:39:49.43 ID:XpUIM/8a.net]
>>746
IME周りはブラウザ毎に実装が違ったりして面倒なので全てのブラウザで動くとは保証出来んが
keydownでキーコード229,0,13を拾えばだいたい拾えるんじゃないかね?



769 名前:デフォルトの名無しさん mailto:sage [2016/06/19(日) 01:54:37.93 ID:jkRTuMFS.net]
おしんとひこうきぴゅんぴゅん

770 名前:デフォルトの名無しさん mailto:sage [2016/06/19(日) 15:42:45.26 ID:j/5yp6z/.net]
古いソフトのプラグイン頼まれたんだけど新しめのESで追加された機能がほとんど使えなくて難儀してる
よくわからないんだけどこういうのって作者が対応すれば使えるようになるの?
VSなんかだと参照突っ込むだけで機能使えるようになるけど
そういうお手軽はお話じゃないんかね

771 名前:デフォルトの名無しさん mailto:sage [2016/06/19(日) 19:29:55.99 ID:fmRoj+h3.net]
なんのエンジン使ってるか知らんが例えばV8でも無理でーす
奴らは自分のブラウザで動けばいいので毎日のように互換性壊しまくりのスケ〜

772 名前:デフォルトの名無しさん mailto:sage [2016/06/20(月) 18:11:29.60 ID:tys3WiX6.net]
javaでいうTreeSetを使いたいのですが、ありますか?

773 名前:デフォルトの名無しさん mailto:sage [2016/06/20(月) 18:48:32.16 ID:hRWj67CX.net]
(非数字)文字列ならオブジェクトのプロパティとして加えていって列挙すればソートされてる

774 名前:デフォルトの名無しさん mailto:sage [2016/06/21(火) 00:26:47.70 ID:qdV120KE.net]
リンクをクリックするとJavaScriptでページ遷移するウェブページで、遷移する先のURLを事前に取得する方法はありますか?

意図としてはページに飛ばされる前にどこに飛ぶのか判断したいためです。

775 名前:デフォルトの名無しさん mailto:sage [2016/06/21(火) 00:47:36.70 ID:Zouo8B6w.net]
>>753
JavaScriptでページ遷移するなら遷移先URLもJavaScriptで分かっているはずなのだが

776 名前:デフォルトの名無しさん mailto:sage [2016/06/21(火) 08:14:40.47 ID:vlWZNI1X.net]
>>754
最終的な遷移先のURLを鯖側で生成してたらわからんけど

777 名前:デフォルトの名無しさん mailto:sage [2016/06/21(火) 09:06:55.19 ID:zhgdBgoI.net]
>>754
説明が足らずすみません。

他者が作ったウェブサイトの環境で、ブラウザの拡張機能などで自前のJavaScriptを実行して判断したいということでした。

そういうことだと>>755さんの言うとおり、他者のサーバで生成してるからわからないってことになりそうですね。

778 名前:デフォルトの名無しさん mailto:sage [2016/06/21(火) 11:17:04.95 ID:Zouo8B6w.net]
>>756
URLの生成規則を探すとか、JavaScriptコードを読んでコードから遷移先URLを得る、とか一概には言えないと思う



779 名前:デフォルトの名無しさん mailto:sage [2016/06/21(火) 12:14:28.77 ID:VoVagir1.net]
>>756
クライアントが移動先を知ってるなら取る方法はない訳ではないが
鯖側でリダイレクトさせる場合にはAjaxでリンクを踏んで戻った内容からリダイレクト先をスクレイピングするとかしないと無理だろうね

つまり画面遷移をせずにリンク先を取得する事は可能、鯖と通信せずにリンク先を取得する事は不可能なケースがある
クライアント上で動作している以上、クライアントが知らない情報は取得出来ない

780 名前:デフォルトの名無しさん mailto:sage [2016/06/21(火) 13:29:33.82 ID:NcocGzZA.net]
いや、どこに跳ぶかを判断したいくらいなのだから、
いろんな方法・想定で常識的な範囲で全て判断できると言えるだろう

781 名前:デフォルトの名無しさん mailto:sage [2016/06/21(火) 19:00:28.03 ID:s0xSal8K.net]
VBのFormsみたいなフレームワークってないすか?
デザイナでペタペタ配置してロジックは画面オブジェクトにハンドラを書くだけ的なやつです

782 名前:デフォルトの名無しさん mailto:sage [2016/06/21(火) 19:02:39.48 ID:rJ2mr4JY.net]
>>760
ホームページビルダで出来ない?
使ったことないから知らんが

783 名前:デフォルトの名無しさん mailto:sage [2016/06/21(火) 20:02:34.86 ID:zhgdBgoI.net]
>>757
>>758
丁寧に回答していただきありがとうございます。
リンククリック時のJavaScriptからレスポンスを解析してURLを取得できるかを試してみます。

784 名前:デフォルトの名無しさん mailto:sage [2016/06/21(火) 22:07:52.39 ID:8xYufxWO.net]
var fs = require('fs');
var data = "write text test!";
fs.writeFile('writetest.txt', data , function (err) {
console.log(err);
});

785 名前:デフォルトの名無しさん mailto:sage [2016/06/21(火) 22:09:11.15 ID:8xYufxWO.net]
このくらいのプログラムをNodejsで作ってNodejs上ではもちろん動きましたが

786 名前:デフォルトの名無しさん mailto:sage [2016/06/21(火) 22:14:12.35 ID:8xYufxWO.net]
webpack上では動きません。
先にNodistを入れたのですがUpdateすると依存関係のエラーが多かったので
Nodejp単体で入れることにしました。
ところが
npm install webpack -g とかするとなぜかNodistのフォルダに入ってしまいます。
そのせいでビルドができてないのでしょうか。
経験のある方お願いします。
スレ違いなら誘導していただけるとありがたいです。

787 名前:デフォルトの名無しさん mailto:sage [2016/06/21(火) 23:28:49.59 ID:8xYufxWO.net]
変換したものは長くてここに表示しきれないですが
require is not defined
と出ますね。
一応webpackは通したのですが。
ブラウザはFirefoxです。

788 名前:デフォルトの名無しさん mailto:sage [2016/06/22(水) 00:14:59.67 ID:azjhZ3WA.net]
javaScriptのSetってSetとWeakSetしかないんですか?
SortedSetが欲しいです



789 名前:デフォルトの名無しさん mailto:sage [2016/06/22(水) 07:19:51.98 ID:cIEa5wGZ.net]
ソートっていろんな種類があるからねぇ。
自分で作ったら?

790 名前:デフォルトの名無しさん mailto:sage [2016/06/22(水) 11:58:39.11 ID:q9pILfZy.net]
Nodist を アンインストールしてその後、 Node.jsを入れたのですが
npm root -g としてモジュールがインストールされるディレクトリを見ると
C:\Program Files (x86)\Nodist\bin\node_modules
なっています。
環境変数も見ましたがNodistの残骸が残っているようにはありません。
どこにNodistの情報が残っているのでしょうか。

791 名前:デフォルトの名無しさん mailto:sage [2016/06/22(水) 14:53:18.59 ID:q9pILfZy.net]
ユーザーディレクトの下にprefixの設定が残っていたようです。

792 名前:デフォルトの名無しさん mailto:sage [2016/06/22(水) 14:58:05.09 ID:q9pILfZy.net]
npm config lsで調べて上記のことが分かったのですが、未だに
require is not defined
のエラーが解決されません。
/***/ },
/* 2 */
/***/ function(module, exports) {

module.exports = require("fs");

/***/ }
/******/ ]);
どうもコメントばかりついていてうまく変換されたように見えません見えません。

793 名前:デフォルトの名無しさん mailto:sage [2016/06/22(水) 21:00:04.72 ID:/0SrxieV.net]
誰としゃべってんのこいつ

794 名前:デフォルトの名無しさん mailto:sage [2016/06/23(木) 00:00:47.49 ID:wmr/9KTO.net]
>>769-771
恐らく環境変数node_pathがNodistのディレクトリのままだろうから書き換え
あとfsのようなNode.js用モジュールはWebpackでバンドルできないはず
Webpackからファイル読みたい場合はLoader使って事前に含めるしかない

795 名前:デフォルトの名無しさん mailto:sage [2016/06/23(木) 01:13:09.29 ID:Lewr0A8P.net]
ありがとうございます。
Webpackからは基本できないのですね。
set コマンドでは
NODE_PATH=C:\Users\habu\AppData\Roaming\npm\node_modules
アンインストーラーを使っても環境変数を調べてもどうにもならなかったので
アンインストーラーが削除し忘れた
"C:\Users\xxxx\.npmrc"
を手動で削除したらパスの通ったところにモジュールをインストールするようになりました。

796 名前:デフォルトの名無しさん mailto:sage [2016/06/23(木) 12:30:54.99 ID:TKILd+kM.net]
IE11,Edge,Firefox,Chrome,safari,Operaの6つのブラウザを同時に起動してるんですが
javascriptを更新したらブラウザに切り替えてページ更新するのが面倒くさいんですが
ファイルが更新されたら自動的に更新する方法ありませんか?

797 名前:デフォルトの名無しさん mailto:sage [2016/06/23(木) 12:33:06.98 ID:p9xHkbsy.net]
>>775
定期的にリロードするようにしたら良いんじゃないの?

798 名前:デフォルトの名無しさん mailto:sage [2016/06/23(木) 14:14:01.07 ID:1rhmo8jO.net]
ファイルを監視して更新があったらブラウザのウィンドウをアクティブにしてリロード操作(F5?)のイベントを送るツールでも作ればいいんでない?



799 名前:デフォルトの名無しさん mailto:sage [2016/06/23(木) 15:28:59.42 ID:it3byhHh.net]
>>775
簡単に出来ますよ

800 名前:デフォルトの名無しさん mailto:sage [2016/06/24(金) 11:16:15.69 ID:M5Y9qYOR.net]
>>773
いまいち例が無くてどのローダーを使えばテキストファイル出力ができるのか
分からないです。
ホームページで確認してraw-loaderがUTF-8に出力するみたいなことを書かれていた
GreasemonkeyからinnerTextをテキストファイルに出力したいだけなのですが
かなり敷居が高いようですね。
色々なサイトで実験されている

801 名前:デフォルトの名無しさん mailto:sage [2016/06/24(金) 11:22:06.51 ID:M5Y9qYOR.net]
みたいなのですが、セキュリティがらみなので改善(改悪?)されてできなくなったところが多いです。
raw-loaderの使い方の例がもう少しサンプルで出されているサイトがあればいいのですが。

あと、少し2ちゃん専用のソフトの使い方になれてなくて間違えて文章を途切れ途切れに
送ってしまったことをお詫びします。

802 名前:デフォルトの名無しさん mailto:sage [2016/06/24(金) 12:30:59.24 ID:V/itJnf4.net]
Loaderは読み込んでバンドルするだけで書き込みはできないよ
ブラウザから書き込みしたいなら拡張機能のAPIを探すしかない

803 名前:デフォルトの名無しさん mailto:sage [2016/06/24(金) 14:35:52.18 ID:M5Y9qYOR.net]
>>781
そうなんですか。どこを探しても無理なわけですね。
拡張機能と言うのはブラウザの拡張機能ですか?
煮詰まったので今のところはローカルにapacheでサーバーを立てて
PHPでアクセスすることを考えています。
それでだめなら拡張機能のAPIを探すことを考えています。

804 名前:デフォルトの名無しさん [2016/06/24(金) 23:07:00.20 ID:qTbX1cTa.net]
プログラミングに詳しい方々がいると聞いて質問しにきました。
初心者なので説明力、知識が乏しいですが申し訳ありません。
私は、不特定多数の人が画像をサイト上のみで「読み込み→編集→ダウンロード」を全てできる画像編集サイトを作ろうと思っていて、
色々調べている内にImageMagickと言うプログラムにたどり着きました。
ですが使い方などが全くわからず、困っております。現在xサーバーを利用していてホームページを取得しています。
xサーバーは公式で既にImageMagickがインストールされているということです。(この事についてもいまいち分かりません)
どなたか分かりやすく画像編集サイトの作り方を教えていただけませんでしょうか。
OSはwin7 64bitです。
本当に困っています。

805 名前:デフォルトの名無しさん [2016/06/24(金) 23:12:05.32 ID:Fo67yJqk.net]
>>783
PHPで作った方がいいと思うよ
PHP板行ったら?
echo.2ch.net/test/read.cgi/tech/1466683550/

806 名前:デフォルトの名無しさん [2016/06/24(金) 23:14:07.58 ID:qTbX1cTa.net]
>>784
PHP板にてここで聞いた方がいいと言われ、質問いましました

807 名前:デフォルトの名無しさん [2016/06/24(金) 23:14:44.48 ID:Fo67yJqk.net]
>>785
jsじゃ無理だよ
PHPじゃないと出来ない

808 名前:デフォルトの名無しさん [2016/06/24(金) 23:16:31.66 ID:Fo67yJqk.net]
一番簡単に作れるのは、Ruby
Rubyスレ行ってみたらどうだ?



809 名前:デフォルトの名無しさん mailto:sage [2016/06/24(金) 23:28:09.79 ID:V/itJnf4.net]
>>782
その通りブラウザ拡張機能のAPI
でもローカルにHttpd立てていいなら>>763の弄って使えばいいんじゃない
どうせグリモンで動かすUserScriptからHTTPでやり取りするんだろうし

>>783
まず画像を読み込んで編集して保存するのはJSで出来る
画像を不特定多数でどう扱うのかによってはサーバー側の実装も必要だけど
これもNode.jsを使えばJSで作れる、因みにこっちはPHPでも作れる
ただ作り方となると手順が膨大だから一々説明してられん
「JavaScript ファイル読み込み」など一つずつググって勉強するしかない

810 名前:デフォルトの名無しさん mailto:sage [2016/06/25(土) 11:12:38.28 ID:FcXCwkAU.net]
textareaで入力した位置を知る方法ありませんか?






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧](;´∀`)<397KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef