のくす牧場
コンテンツ
牧場内検索
カウンタ
総計:127,474,336人
昨日:no data人
今日:
最近の注目
人気の最安値情報

    私的良スレ書庫

    不明な単語は2ch用語を / 要望・削除依頼は掲示板へ。不適切な画像報告もこちらへどうぞ。 / 管理情報はtwitter
    ログインするとレス評価できます。 登録ユーザには一部の画像が表示されますので、問題のある画像や記述を含むレスに「禁」ボタンを押してください。

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

    JavaScript スレッド一覧へ / JavaScript とは? / 携帯版 / dat(gz)で取得 / トップメニュー
    スレッド評価: スレッド評価について
    みんなの評価 :
    タグ : 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。
    レスフィルター : (試験中)
    ←前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 次へ→ / 要望・削除依頼は掲示板へ / 管理情報はtwitter
    101 : Name_Not - 2014/01/27(月) 02:41:08.51 ID:??? (-1,-29,-12)
    >>100
    自分で答え書いてるじゃん…
    要素のcontenteditableをtrueにすればいいよ
    102 : Name_Not - 2014/01/27(月) 02:49:12.05 ID:??? (+31,-29,-14)
    はい
    overflow: autoにすると、かなり見た目はtextareaになります
    しかしブラウザ画面間でコピーペーストすると
    書式情報までコピーされてしまいます
    103 : Name_Not - 2014/01/27(月) 02:59:41.47 ID:??? (+62,+29,-14)
    >>102
    それで

    自分ではどうすれば良いと思って
    どのように試してみたが
    どの辺がわからん

    のように書いてくれるとレスもつきやすい
    104 : Name_Not - 2014/01/27(月) 03:17:37.55 ID:??? (+32,-29,-38)
    >>100
    > textareaだとCSSの属性を揃えてもブラウザ間の見た目が変わるので
    未指定のプロパティがあるだけだろう
    105 : Name_Not - 2014/01/27(月) 03:34:11.03 ID:??? (-1,-29,-19)
    pasteイベントをハンドルして文字列だけをペーストしたいです
    106 : Name_Not - 2014/01/27(月) 03:52:06.12 ID:??? (+10,-29,-10)
    しかしブラウザ画面間でコピーペーストすると

    しかしブラウザ画面上でコピーすると

    か?
    107 : Name_Not - 2014/01/27(月) 03:54:32.58 ID:??? (+45,+17,-2)
    コピペなら便利なツールがあるので探してみて
    108 : Name_Not - 2014/01/27(月) 03:54:45.76 ID:??? (+62,+29,-6)
    >>104
    まったく同じにしても、たとえば改行の発生状況など変わってきますよ
    109 : Name_Not - 2014/01/27(月) 03:55:47.03 ID:??? (+16,-8,-1)
    >>106
    コピー&ペーストです
    110 : Name_Not - 2014/01/27(月) 05:27:55.12 ID:??? (+7,-30,-217)
    コピーした段階で書式情報付いてんじゃねーの?って話

    テキストボックスの中に書式付きテキストがある時点で色々あれだが、
    function(){this.innerHTML=this.innerText;}
    とかをcopyイベントで走らせてプレインテキストに差し替えておけばいいと思う。
    改行とかを残すならreplace(/\n/g,"<br/>");とかで適当に繕う。
    書式を維持するなら
    var _this=this,oldHTML=this.innerHTML;~setTimeout(function(){_this.innerHTML=oldHTML;},0);
    とかにして後から戻す。Chromeで試したけど他のは知らん。

    これで弄っても選択範囲とかがズレたり面倒くさいし、
    そもそも最初から書式情報付けるべきじゃねーと思う。
    111 : Name_Not - 2014/01/27(月) 05:31:42.57 ID:??? (-2,-30,-34)
    innerHTMLから/<[^>]+>/を削るという大雑把な方法でもまあまあいけた
    112 : Name_Not - 2014/01/27(月) 05:51:32.30 ID:??? (-1,-29,-24)
    textareaはこのようにchromeとfirefoxで改行位置が変わります
    http://jsbin.com/OQILaVaJ/1/edit
    もし同じにする方法があれば教えて下さい
    113 : Name_Not - 2014/01/27(月) 05:52:42.62 ID:??? (+32,-29,-19)
    >>110
    ありがとうございます
    clipboardオブジェクトを使ったらプレーンテキストで挿入できました
    114 : Name_Not - 2014/01/27(月) 06:07:12.24 ID:??? (+62,+29,-8)
    >>113
    110を参考にして解決したようには全く見えないけど解決したようで何より
    115 : Name_Not - 2014/01/27(月) 06:22:30.87 ID:??? (+57,+29,-5)
    回答に対してのお礼です
    見た時には解決していたので
    116 : Name_Not - 2014/01/27(月) 06:24:06.55 ID:??? (-1,-29,-37)
    textareaですがchromeでは等幅フォントっぽいことに気付きました
    それでfont-familyを指定したら、見た目が同じになったようです
    117 : Name_Not - 2014/01/27(月) 07:02:17.98 ID:??? (+63,+29,-5)
    MS ゴシックPなら同じに見えたのですが、
    MSゴシックだとやはり変わりました
    http://jsbin.com/OQILaVaJ/4/edit
    118 : Name_Not - 2014/01/27(月) 08:32:09.35 ID:??? (+13,-30,-148)
    >>65 即時関数内でvar windowとか

    >>64-79 まだ環境限られるけどEncodingAPI使うのがスマートかつ高速でかなりオススメ
    http://encoding.spec.whatwg.org/

    new TextEncoder().encode('abc') // [97, 98, 99]
    new Uint16Array(new TextEncoder('utf-16').encode('あいう').buffer) // [12354, 12356, 12358]

    >>80 好みの問題、自分は適度varを入れて適宜つめた方がいいと思う
    まあ無理して先頭につめ込むくらいなら、適宜その場その場で宣言した方がよっぽどいいと思う
    でもあんまりハイブリットにしちゃうと規約にならないってのはあるね

    余談だけどES6の分割代入もスマートさを上げるために適宜使えると思う
    var [l, m, n] = [1, 2, 3]
    みたいな感じでなかなかいいと思う
    119 : Name_Not - 2014/01/27(月) 13:41:09.47 ID:??? (+45,-30,-72)
    >>117
    試してないけど、word-spacing, letter-spacing あたりじゃない?
    Developer Tool を使って Computed Style を片っ端から指定してみては?
    120 : Name_Not - 2014/01/27(月) 19:31:09.39 ID:??? (+13,-30,-40)
    var obj = {
    timer: null,

    hoge: function(){
    this.timer = setTimeout(...);
    },

    この中のtimer: null,ってどういう意味があるんですか?
    これを書かなくても一応動きますよね
    121 : Name_Not - 2014/01/27(月) 19:36:40.55 ID:??? (-1,-29,-16)
    >>120
    timerプロパティが存在する事が明示的にわかるから
    122 : Name_Not - 2014/01/27(月) 20:33:13.19 ID:??? (+9,-29,-145)
    >>120
    「timer: null」はオブジェクトを期待しているようにも見えるし、JITの型推論を動揺させるので良くない。
    一度や二度ならいいが関数単位で何度も脱最適化を起こさせるとその関数は永続的に最適化されなくなってしまう。
    もしインライン化されてた場合には影響範囲は更に広がる。

    きちんとした形で各慣習に従うのなら、DOM0(whatwg-web-apps)仕様では正の数を返すことになってるので、
    「timerId: 0」とか「handle: -1」なんかがより良いと思う。
    123 : Name_Not - 2014/01/27(月) 21:19:09.81 ID:??? (+4,-30,-19)
    <script type="text/javascript">に直接書いたプログラムは、いつ実行されるのですか?
    onLoad()と同じ?
    124 : Name_Not - 2014/01/27(月) 21:23:57.14 ID:??? (+91,+29,-9)
    なぜお礼を言わない単発質問を繰り返すのですか?
    125 : Name_Not - 2014/01/27(月) 21:55:17.88 ID:??? (+0,-29,-4)
    >>122
    nullを使ってるコードのほうが多かったのでなんとなくnullにしてましたが
    勉強になりました
    126 : Name_Not - 2014/01/27(月) 22:18:22.40 ID:zXtjlnqP (+22,+22,-59)
    Googlemapのルート検索と人型アイコンを連動させることはできますか?

    ルート検索を実装すると現在地・目的地にアイコンが表示されますが、
    これを現在地のみ人型アイコンにして、かつ人型をドラッグすると、
    ルートも更新されるということは可能でしょうか?

    js勉強中です、方法があれば教えてください
    128 : Name_Not - 2014/01/28(火) 01:56:13.05 ID:??? (+69,+29,-20)
    >>124
    誰に言ってんの?統合失調症か?
    129 : Name_Not - 2014/01/28(火) 07:18:12.44 ID:??? (+64,+29,-38)
    >>119
    ありがとうございました
    試してみましたが無理でした
    フォーム系部品はブラウザごとにかなり異なるのが普通なので、
    テキストエリアも同じには出来ないのかもしれません
    130 : Name_Not - 2014/01/28(火) 09:02:00.08 ID:??? (+3,-29,-33)
    >>123
    HTMLの処理がその<script>...</script>に到達した時点ですべて実行される。
    つまりonloadよりずっと前。でなかったらdocument.writeでその位置にHTMLを
    挿入できないでしょ?(まあ、無理すればできなくもないか、、、)
    131 : Name_Not - 2014/01/28(火) 09:54:14.95 ID:??? (-1,-29,-48)
    contenteditable=trueのエンターキー入力時の処理がchrome,firefox,ieで違いますが
    差を吸収させる時の定石ってありますか?
    132 : Name_Not - 2014/01/28(火) 10:49:18.63 ID:??? (+3,-30,-88)
    http://stackoverflow.com/questions/2057881/avoid-ie-contenteditable-element-to-create-paragraphs-on-enter-key
    contenteditableな要素でエンターを押した時に
    IEではパラグラフ挿入になるのを
    document.selection.createRange().pasteHTML("<br/>")
    で防いでいます
    動作させると実際に防げるのですが、どういう原理で防げるのかがよく分かりません
    何がどうなって
    <p>文章</p>が
    文章<br/>に置き換わるのでしょうか?
    133 : Name_Not - 2014/01/28(火) 10:59:36.64 ID:??? (-1,-29,-21)
    そもそも何も選択されていない時のdocument.selectionがなにを意味するのかが分かりません
    134 : Name_Not - 2014/01/28(火) 18:27:43.86 ID:??? (+3,-30,-109)
    フラグを有効にしたChromeで使えるWeb Animations APIはいつフラグ無しで使えるようになりそうですか?教えて下さい

    また新し目の日本語情報サイトをご存知でしたらそれも合わせて是非教えて下さい

    こういうやつです
    elem.animate([
    { color: 'red' },
    { color: 'blue' },
    { color: 'green' },
    ], 5);
    135 : Name_Not - 2014/01/28(火) 19:25:14.93 ID:??? (+4,-30,-73)
    >>127は方法を変える(Base64にする)ことで自己解決しました。

    それで、もう一つ質問があるのですが、
    setinterval(function(){},1000);を関数の中で
    使いたいのですが、このsetintervalの中でreturnすると、setintervalの中の関数のreturnをしてしまいます。
    setintervalの中から外の関数のreturnを実行する方法はありませんか?
    136 : Name_Not - 2014/01/28(火) 19:40:15.46 ID:??? (+10,-30,-43)
    >>135
    非同期のイベントを受け取りたいならPromiseでも使え

    function func() {
     ......
     ......
     return new Promise(function (res) {
      setInterval(function () {
       ......
       ......
       res(returnValue)
      }, 1000);
     })
    }


    func().then(function (returnValue) {
     ......
     ......
    })

    受け取れるのは最初の一回だけな
    137 : Name_Not - 2014/01/28(火) 21:04:27.04 ID:??? (+10,-30,-204)
    >>136 ググってみましたが、少し違います、ごめんなさい

    getfile()という関数を作って、動的に外部JSファイルをインクルードして、
    そのJSに書いてある
    var TEMP_webResBody="hoge";
    が実行される、つまり変数TEMP_webResBodyがundefinedでなくなったら
    getfile()はその変数の内容を返す(PHPのfile_get_contentsのように取得し終わるまでは続きを実行しない)というものにしたいのですが、
    TEMP_webResBodyがundefinedでなくなるまで待つ、という所で躓いています。
    先ほどの質問の後、setTimeoutのループでの巡回でなんとかしようと思い、
    138 : Name_Not - 2014/01/28(火) 21:10:31.32 ID:??? (+52,+29,-2)
    駅前で全裸で叫んでみた。
    139 : Name_Not - 2014/01/28(火) 21:22:23.28 ID:??? (+25,-30,-235)
    //JavaScriptでもインクルード
    function include(astrFile){var script = document.createElement('script');script.src = astrFile;script.type = 'text/javascript';script.defer = true;document.getElementsByTagName('head').item(0).appendChild(script);}

    function getfile(url){function intervalRun(){alert('hi gig');}include(localStorage.getItem('relayServer'),'http://2cher.imakita.0zed.com/2cherRelay.php'+'?url='+encodeURI(url));setTimeout('intervalRun');}

    上のようにテストコードを作ってみましたが、実行すると
    「変数intervalRunが見つからない」とエラーが出ます。
    どうすればいいでしょうか?
    140 : Name_Not - 2014/01/28(火) 21:58:25.39 ID:??? (+30,+0,-3)
    >>139
    ()省略してもよかったけ?
    141 : Name_Not - 2014/01/28(火) 22:04:50.24 ID:??? (-1,-29,-18)
    実際のテストではちゃんとintervalRun()になっています…
    142 : Name_Not - 2014/01/28(火) 22:44:45.46 ID:??? (+1,-29,-14)
    >>139
    RequireJSを使えば、includeは簡単に出来るよ。
    143 : Name_Not - 2014/01/28(火) 22:56:50.00 ID:??? (+3,-29,-107)
    オライリーのJavaScript第六版にも
    selectionオブジェクトについてはほとんど書いてません

    Selection オブジェクトと Range オブジェクトには、
    ひととおりの API が定義されていますが、あまり使われていません。本書でも解説しません。
    IE にも別の API が定義されていますが、こちらも本書では解説しません。

    しろよ(`o´)
    144 : Name_Not - 2014/01/29(水) 03:01:32.40 ID:??? (-1,-29,-5)
    SelectionってまだFPWDも出てないんじゃ
    145 : Name_Not - 2014/01/29(水) 06:01:42.00 ID:??? (+47,-30,-48)
    SelectionとRange周りの仕様は一応ここ
    http://dvcs.w3.org/hg/editing/raw-file/tip/editing.html#selections
    http://dom.spec.whatwg.org/#ranges
    http://www.whatwg.org/specs/web-apps/current-work/multipage/association-of-controls-and-forms.html#textFieldSelection


    >>137,139
    長くなったのでこっちに書いた
    http://ideone.com/xqKBNL

    でもこういうことをしようと思ったのって、そのJSファイルが別ドメインだからだよね?
    同じドメインならもっといい方法あると思う
    146 : Name_Not - 2014/01/29(水) 06:54:16.13 ID:??? (+57,+29,-33)
    そのジェネレータの使い方面白いけど、ややこしいな。
    147 : Name_Not - 2014/01/29(水) 07:53:56.93 ID:??? (-1,-29,-42)
    ダブルコーテーションを使わずにタブコードを記述することはてきますか?
    String.fromCharCode(9)
    だと長すぎます
    148 : Name_Not - 2014/01/29(水) 08:06:48.62 ID:??? (-1,-29,-32)
    '\t'っていう書き方が出来ました
    エスケープできるのはダブルコーテーションだけと思ってました
    失礼しました
    149 : Name_Not - 2014/01/29(水) 16:20:43.38 ID:??? (+30,-30,-64)
    >>145
    ごめんなさい、iPhoneとPCのSafariで使ってみて「出来ない…?」と思ってググってみたら
    MozillaのMDNに「Safari/Not Supported」と書いてありました…
    iPhone用なので、Mobile Safariが対応していれば何でもいいんですが…無理ですか?
    よろしくお願いします
    150 : Name_Not - 2014/01/29(水) 17:18:32.78 ID:??? (+48,-24,-12)
    質問です。
    見ている人のIPアドレスを取得する方法分かりますか?
    PHPなどを使わずにやりたいのですが、、、
    ←前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 次へ→ / 要望・削除依頼は掲示板へ / 管理情報はtwitterで / JavaScript スレッド一覧へ
    スレッド評価: スレッド評価について
    みんなの評価 :
    タグ : 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。

    類似してるかもしれないスレッド


    トップメニューへ / →のくす牧場書庫について