Web開発

31f801e6 anonymous 2013-05-05 18:28
JavaScriptのスレを立てようかと思ったんだけど、もっと間口を広くしてWeb開発に。Web屋のスレがあったが、復活させるよりより一般的な感じがいいかと。Web関連の質問とか雑談とかいろいろと書き込んでほしい。
92f7631a anonymous 2013-05-05 18:42
で、早速なんだけど質問です。そうです。質問したかったので立てたんです。
console.log( loadFile( url));
function loadFile ( fileURL) {
  var xmlhttp = new XMLHttpRequest();
  xmlhttp.onreadystatechange = function () {
    if ( xmlhttp.readyState == 4 && xmlhttp.status == 200) {
      return xmlhttp.responseText;
    }
  };
  xmlhttp.open( "GET", fileURL, true);
  xmlhttp.send();
}
これは非同期だからコンソール出力はUndefinedになるんだけど、返って来たら受け取りたいときは普通どうすんの?setTimeoutで再帰ループ組んで確認ですか?
6e72dc3e anonymous 2013-05-07 02:44
えーん誰もいないよー
やっぱsetTimeoutの再帰loopかな。

var res;
loadFile( URL);
setTimeout( getres, 100);

function getres () {
  if (res) {
    console.log( res);
  } else {
    setTimeout( getres, 100);
  }
}

function loadFile ( fileURL) {
  var xmlhttp = new XMLHttpRequest();
  xmlhttp.onreadystatechange = function () {
    if ( xmlhttp.readyState == 4 && xmlhttp.status == 200) {
      res = xmlhttp.responseText;
    }
  };
  xmlhttp.open( "GET", fileURL, true);
  xmlhttp.send();
}
423d9785 anonymous 2013-05-09 16:52
chrome extension 勉強中。ドキュメントのcontent_scriptsとcontent scriptsは違う意味で使われてるのかな。chrome.extensionをクリックしたらchrome.runtimeに飛ぶのはextensionは終了ってことなのかな。混乱する。
0065b337 anonymous 2013-05-09 18:49
Globalオブジェクトをbackgroundで展開しておく。リスナーを用意しておく。
chrome.runtime.onMessage.addListener( function( msg, sender, fnc) {
  if ( msg === "send data") {
    fnc( data); // senderのコールバック関数にdataを渡すとsender側で実行される。
  }
});

pageActionのpopupなどからGlobalオブジェクトが必要なときにメッセージを送る。
chrome.runtime.sendMessage( "send data", function ( data) {
  // 操作を書いておく。
});

これで、dataオブジェクトを入手後に操作が実行される。
36952add anonymous 2013-05-09 21:06
>>0065b337
functionは送れなかった。toStringで渡して解決。
96ae929b anonymous 2013-05-11 15:16
chrome.runtime.sendMessage ← backgroundにメッセージを送る
chrome.tabs.sendMessage ← content_scriptsにメッセージを送る。tabIdが必要
tabIdは、
chrome.windows.getCurrent( function ( win) {
  chrome.tabs.getSelected( win.id, function ( tab) {
    // これでアクティブタブが取得できる。
});});
つ ま り、
chrome.windows.getCurrent( function ( win) {
  chrome.tabs.getSelected( win.id, function ( tab) {
    chrome.tabs.sendMessage( tab.id, "localStorageをよこせ", function ( store) {
      // これでアクティブタブのlocalStorageを持ってこれる。
});});});
b26f9cf8 anonymous [sage] 2013-05-12 11:20
chrome.storageは容量の制限が厳しくて下手な使い方ができないので注意。
50f43cbf anonymous 2013-05-12 14:28
pageActionから大きなデータを送るのが面倒だな。そんな使い方が間違いなんだろうけど。
相手にメッセージを送らせてデータを渡す。ハンドシェイクみたいになるんだな。
7016e577 anonymous 2013-05-12 16:13
JavaScriptでオブジェクト定義のときキー値は式解釈されない。基本?知らんかった。
var nullpo = 'ざまぁw'; var template = { nullpo: 'ga'};
→ nullpoは文字列として解釈される。つまり、template.ざまぁw は undefined
ちなみに、オブジェクト名に日本語は使える。
af89230d anonymous 2013-05-12 22:18
三項演算子 hoo? baa: hoge;
オブジェクトが取得できてるか確認して代入するときよく
 var baa = hoo? hoo: hoge;
とかやってて重複が気になってふと二項演算子とかないの?と思ったが、
 var baa = hoo || hoge;
これでいいという。二項演算子って普通の演算子だった。
7f4b25d5 anonymous 2013-05-13 17:05
chromeのDeveloper Toolsのコンソールって、コマンド入力できるんだね
2年ぐらい使ってるんだが、ずっと表示オンリーだと思ってた…
a445c716 anonymous 2013-05-13 23:12
>>92f7631a
もうみてないだろうけど、コールバック関数を
受け取れるようにするのがいいと思う。

loadFile(url, function (text) {
  console.log(text);
});
function loadFile(fileURL, callback) {
  var xmlhttp = new XMLHttpRequest();
  xmlhttp.onreadystatechange = function () {
    if ( xmlhttp.readyState == 4 && xmlhttp.status == 200) {
      callback(xmlhttp.responseText);
    }
  };
  xmlhttp.open("GET", fileURL, true);
  xmlhttp.send();
}
fb4afcd7 anonymous 2013-05-14 14:10
>>a445c716
なるほど!コールバックはよく使うのに思いつかなかった。頭が固いな。ちなみに今のところ常駐してます。
78fcb76c anonymous 2013-05-14 22:20
暖かくなってきて頭が働かなくなってきた。コードを書く気がしない
fa6fcf5f anonymous 2013-05-16 15:37
chrome版拡張2ch専ブラread.crx2で新月が見れて書き込めるようにしてみようと思う。
ただし!npm, Bundler, ImageMagick?何それおいしいの?状態から始める。
b671c0ec anonymous 2013-05-16 15:41
つまりnode.jsから勉強やね
af04559f anonymous 2013-05-16 15:48
node.jsをインストール!
c31ccc37 anonymous 2013-05-16 16:23
http://gihyo.jp/dev/serial/01/nodejs/0001
ここを参考に。node.jsで新月クローンつくれるのかなもしかして。
4135277f anonymous 2013-05-17 23:31
>すげえ!Google ChromeがWebサーバに「Chrome simple HTTP Server」
>http://www.moongift.jp/2012/11/20121116/
この拡張が今使えるなら、chrome拡張として新月を実装できるね
2d0f030b anonymous 2013-05-21 08:09
chrome.storageはsyncとlocalがあって、syncは制限が厳しいけどlocalはゆるい。サイズが大きい場合はlocalを使えばよかった。

Top of this page. | <<last 0 1

limit: 15360KB

(Web開発/121/0.2MB)

Powered by shinGETsu.