タグ

JavascriptとIEに関するiwwのブックマーク (61)

  • IEブラウザを判定してアラートを表示する方法 | おべんきょうにっき

    Web制作に携わっていると、IEを(いまだに…)利用しているユーザーのための対応が必要になってくる。対応方法しては、 パターン1:IE用に別途cssを書く パターン2:「(レイアウトが崩れる)IEをやめて、ChromeやEdgeなどに変えましょう」とアラートする。 の2パターンが考えられる。パターン1は、すでにIE10以前のサポートが終了していることと、「IEからEdgeに変えてね」と公式にアナウンスされていることを考えると、手間をかけるだけもったいないので、企業向けサイトでない限り、できるだけ避けたい。 ※Microsoftのアナウンス パターン2のアラートで対応するケースが多いので、今回はその方法を記載。 方法1:ブラウザの画面上にアラートを表示する IE10以前のブラウザで開くと、画面上にアラートのテキストが表示されるようにする。 条件付きコメントでブラウザに表示する IE独自の規格

    iww
    iww 2023/01/10
    IE判定
  • document.all の例外仕様を知っていますか

    昨日、ツイッターで次のような JavaScript クイズを出しました。 久しぶりの JavaScript クイズ! function hello(x) { if(typeof x === 'undefined') { alert(x.f()); } } この hello 関数で "Hello, World!" のアラートを表示させることが出来るか? — Takuo Kihira (@tkihira) July 31, 2022 このブログ記事では、この問題について解説します。 解答 答えは「出来る」です。出題者の意図としては document.all を想定しておりました。 document.all は、ブラウザに存在する、非常に特殊なオブジェクトです。 document.all 自体は object 型である。console.log(document.all) とすると内容が確認出来る

    iww
    iww 2022/08/01
    ひどい歴史だけど、最初に「 document.all があれば IE」というコードを書いたプログラマが一番悪いな
  • ブラウザから印刷ダイアログなしで印刷したい - 理系学生日記

    Web ページに「印刷」ボタンを用意してボタン押下したらそのまま自分のオフィスで印刷したいんだという要望はよくあるわけですが、印刷ダイアログを飛ばしてそのままプレビューや印刷をしたいという要望が生じるケースがあります。印刷ダイアログで OK ボタンとか押すのメンドくせーからとにかく印刷できれば良いんだ的な。 これ、一見普通の要望に見えますが、一定の前提条件を満たさなければ実現するのは結構厄介です。というのも、このケースにおいて印刷を行うプリンタというのはサーバサイドではなくクライアントPCと接続されているものなので、ブラウザからプリンタを制御するということになってしまうためです。 実際、JavaScript にも標準で window.print があるんですが、これは印刷するというよりは印刷するためのダイアログを出すというもので、さすがにそのまま印刷するってことはできません。 で、これを実

    ブラウザから印刷ダイアログなしで印刷したい - 理系学生日記
  • 使用している Web ブラウザが IE (Internet Explorer) かどうか判別する | まくまくJavaScriptノート

    JavaScript で IE かどうかを判別する IE 判別関数 (isIe) navigator.userAgent プロパティを参照して、ブラウザのユーザーエージェントを調べることで、使用しているブラウザが IE (Internet Explorer) であるかを判別することができます。 IE の場合、ユーザーエージェント名は MSIE あるいは Trident/ で始まります。 // 使用中のブラウザが IE であるかどうかを判別します。 function isIe() { var ua = navigator.userAgent; return ua.indexOf('MSIE ') > -1 || ua.indexOf('Trident/') > -1; } ただし、navigator.userAgent プロパティの値はブラウザの設定により書き換えられる可能性があることに注意

    使用している Web ブラウザが IE (Internet Explorer) かどうか判別する | まくまくJavaScriptノート
  • Clipboard - Web API | MDN

    Clipboard インターフェイスはクリップボード API を実装し、ユーザーが許可する場合、システムクリップボードの内容に対する読み取りと書き込みの両方を提供します。クリップボード API は、ウェブアプリケーションに切り取り(カット)、コピー(複写)、貼り付け(ペースト)の機能を実装するために使うことができます。 EventTarget Clipboard システムクリップボードは、グローバルの Navigator.clipboard プロパティにより公開されています。 Clipboard オブジェクトのメソッド呼び出しは、ユーザーが権限 API を使用して 'clipboard-read' や 'clipboard-write' 権限を取得していないと、成功しません。

    Clipboard - Web API | MDN
    iww
    iww 2022/03/25
    IEにはない。 あとHTTPのページだと使えない(undefinedになる)。 ずるい
  • スタック領域が不足しています (エラー 28)

    スタックとは、実行中のプログラムの需要に応じて動的に増減されるメモリの作業領域です。 このエラーの原因と解決策は次のとおりです。 Function、Sub、Property のいずれかのプロシージャのアクティブな呼び出しの数が多すぎる。 プロシージャの入れ子が深すぎないかどうかを確認します。 この問題は、再帰プロシージャ (自身を呼び出すプロシージャ) でよく発生します。 再帰プロシージャが正しく終了していることを確認してください。 [呼び出し] ダイアログ ボックスを使用して、(スタックの) アクティブなプロシージャを確認します。 ローカル変数に必要なローカル変数領域が使用可能な領域を超えている。 いくつかの変数をモジュール レベルで宣言してみます。 Property、Sub、または Function の各キーワードの前に Static を挿入して、プロシージャのすべての変数を静的変数と

    スタック領域が不足しています (エラー 28)
    iww
    iww 2019/12/13
    曖昧過ぎて何もわからない
  • IE11 で開発者ツールを立ち上げていないと ConsoleAPI や Ajax キャッシュ問題で稀によくしぬ話 - BattleProgrammerShibata

    GoogleChrome でも Firefox でも動くのに、 IE11 だけで上手く JavaScript が動かない問題に遭遇した。いずれもサーバとの通信に絡んだ部分である。 IE 独特の動かない JavaScript かなーと思い F12 キーを叩き開発者ツールを立ち上げて動きを確かめてみると、さきほどまで動かなかったはずのあらゆる機能が期待した挙動を始めた。開発者ツールを閉じると、元に戻った。開発者ツールを立ち上げると、起動すると、期待した挙動を始めた。なんだ、ドキュメントモードか? <!doctype html> と宣言していれば最新の標準モードになるのではなかったか? いやしかしユーザーエージェントは最新版のそれだぞ。ええ? 開発者ツールを立ち上げていないとアプリケーションサーバに吐かれるはずのログが吐かれていない??? クソッタレ、俺が何をしたって言うんだ。クソ、もういい分か

    IE11 で開発者ツールを立ち上げていないと ConsoleAPI や Ajax キャッシュ問題で稀によくしぬ話 - BattleProgrammerShibata
    iww
    iww 2019/08/05
    コンソールの有無ってどう判定すればいいんだろう。 ページを開いてから開発者ツールを起動したときとか困るな
  • IE8以下でaddEventListenerが使えないので - Qiita

    var $hoge = document.getElementById('hogeId'); if($hoge.addEventListener){ $hoge.addEventListener('click', aaa, false); } else if($hoge.attachEvent){ $hoge.attachEvent('onclick', aaa); } http://uhyohyo.net/javascript/3_2.html より抜粋 attachEventというメソッドが使われています。 これが、IEでイベントリスナを登録するメソッドです。 1つめの引数はイベントの種類で、2つめはイベントリスナです。 3つめの引数がありませんが、これはfalseを指定したのと同等です。 addEventListenerではイベント名に「on」を付けないのに、attachEventで

    IE8以下でaddEventListenerが使えないので - Qiita
  • javascriptのDateに文字列突っ込んだらIEとFireFoxでInvalidになりやがった。。。 - 目指せ非プログラマー

    var dateStr = "2000-10-10 00:00:00"; var date = new Date(dateStr); dateの値がChromeだとうまくいくのにIE,FireFoxでうまくいきません。 IE8, IE9, IE10, FireFox 24.0 結論から言うと"-"区切りがダメみたいです。 なので dateStr.replace("-", "/"); 追記で修正 を突っ込んでおくといいでしょう。 しかし、なんでなんでしょうね。 というのも、javascriptにもいろいろ種類があります。 ブラウザによりこのjavascriptの種類が違うのです! だから時々、戻り値がブラウザで違う!なんてことも。 なれるとすべてのブラウザに対応したjavascript文が書けるようになるらしいよ。 ちなみに種類に関してはGoogle先生に”ECMAScript”とか聞いてみ

    javascriptのDateに文字列突っ込んだらIEとFireFoxでInvalidになりやがった。。。 - 目指せ非プログラマー
    iww
    iww 2017/12/02
    Date型に突っ込める文字列として、IEでは ハイフンが使えない というバグがあるという話
  • css-eblog.com - このウェブサイトは販売用です! - css eblog リソースおよび情報

    This webpage was generated by the domain owner using Sedo Domain Parking. Disclaimer: Sedo maintains no relationship with third party advertisers. Reference to any specific service or trade mark is not controlled by Sedo nor does it constitute or imply its association, endorsement or recommendation.

  • JavaScript - IE11でFileAPIが動かない|teratail

    IE11で、FileAPIを用いた以下のjavascriptが動きません。 IE10以降サポートしているはずなのですが、何が問題なのでしょうか? function display() { var content = document.getElementById("hoge").value; var blob = new Blob([content]); var url = window.URL.createObjectURL(blob); document.getElementById("download").href = url; }

    JavaScript - IE11でFileAPIが動かない|teratail
  • IE8 で実装された Selectors API とは何か? - IT戦記

    はじめに IE8 には Selectors API という新しい仕様が実装されました。 ということで、今後 DOM 操作 API の主流になるであろう Selectors API についてまとめておきます。 Selectors API が使えるブラウザ 2008 年 3 月 6 日現在の一覧 WebKit Build Archives | WebKit (開発版の Safari) Windows | Official Site for Microsoft Windows 10 Home & Pro OS, laptops, PCs, tablets & more (IE8 の Beta 版) Selectors API とは Selectors API とは W3C で定義された仕様です。詳細に関してはこちらをどうぞ 簡単に説明すると getElementsByTagName や getE

    IE8 で実装された Selectors API とは何か? - IT戦記
  • Object.is() - JavaScript | MDN

    // ケース 1: === を用いるのと同じ結果になる評価式 Object.is(25, 25); // true Object.is("foo", "foo"); // true Object.is("foo", "bar"); // false Object.is(null, null); // true Object.is(undefined, undefined); // true Object.is(window, window); // true Object.is([], []); // false const foo = { a: 1 }; const bar = { a: 1 }; const sameFoo = foo; Object.is(foo, foo); // true Object.is(foo, bar); // false Object.is(foo, s

    Object.is() - JavaScript | MDN
    iww
    iww 2017/03/26
    ようするに IE9 では未対応ということ
  • IE9+対応でjQueryのajaxを使って非同期的にファイルをアップロードする | ITハット

    IE9以下でも画面遷移なしにファイルをアップロードする必要があり、少しつまづいたので紹介したいと思います。古くからある手法のようです。 ajaxでアップロード HTML ファイルをアップロードする わかりやすいように必要最低限のHTMLです。<button> の type 属性は はJS側で送信するので、buttonとしておきます。 PHP // 一時ファイルパス $tmp = $_FILES['file']['tmp_name']; // アップロードするフォルダのパス $save = 'test/'.$_FILES['file']['name']; // アップロードに成功したとき if (@move_uploaded_file($tmp, $save)) { echo json_encode(array('state' => true, 'name' => $_FILES['file

    IE9+対応でjQueryのajaxを使って非同期的にファイルをアップロードする | ITハット
  • ファイルアップロードをajaxで行う IE対応 - AUSGANG SOFT

    ファイル選択をしたら自動的にajaxでアップロードする機能をつくっていたのだけど、やっぱりIE対応でつまづいた。いちおうIE8対応を目指した。 ajax送信は、このライブラリを使用。 jQuery Form Plugin http://malsup.com/jquery/form/ そのままだとIEで動かない。 596行目のfinallyがIEではエラーになるので、コメントアウト。 次、ファイル選択で自動アップロードしたかったので、jQueryのchangeイベントで処理を書いたが発火してくれない。 jQueryのchangeイベントで気をつけること http://d.hatena.ne.jp/sho-yamasaki/20120319/1332168988 onchangeならうまくいくらしい。 あと、ファイル選択部分を以下をつかって整えた。 JavaScript · Jasny Boo

  • [JavaScript] FormDataの使えないIE8やIE9での代替策 : してログ - LANDHERE

    FormData があると Ajax でファイルアップロードできるようになって大変便利なのですが、困るのが IE8 と IE9 の対応です。 IE10 からは FormData が使えますが、未だに IE8 の要求は来ます。 かつての IE6 のポジションを受け継いでいる臭が漂っています。 諦めて POST で画面リロードするところでしたが、ちゃんと調べて見ると代替策がありました。 使うのは POST ですが、見せ方としては非同期通信っぽく動きます。 サンプルコードは載せませんが、要点を箇条書きにしますので、参考にしてください。 親ページに iframe を配置して見えないようにします(display:none だと Safari でまずいみたいなので、横幅&縦幅をゼロにします) フォームのターゲット要素(target="<iframe名>")で、配置した iframe を指定します サー

    iww
    iww 2017/02/10
    iframeを使う方法 ヒントのみ
  • ブラウザーのキャッシュ無効化 | [Bad Tongue Q]

    Webサイトの更新作業で、更新ファイルをアップロード後によくクライアントから「更新されてませんよ!」「中身が前のままです・・」と言われること、コレ当に多いんです。Internet Explorer(以下IE)6、7が主流だった頃からちょいちょい言われることはありましたが、大抵、「画面上部ツールバーの【表示】をクリックして【最新の情報に更新】をクリックしてみてください!」とか「F5キーを押してみてください!」で大丈夫やったのが、IE8あたりが普及し始めた頃から頻繁にいろんなクライアントの担当者様から言われるようになったんです。 どうもブラウザー(特にIE)のキャッシュ機能が強力に働いて、同じ名前のファイル(特に画像やPDFです)とかやと更新ファイルをサーバーにアップロードした後にリロードしても画面表示が変わらへん!という、更新作業をする者にしてみれば何とも理不尽な現象が起こってたようでした

    ブラウザーのキャッシュ無効化 | [Bad Tongue Q]
    iww
    iww 2017/02/03
    ちょっとやりたくない方法
  • javascriptでconstを使わずに定数を実現する方法

    定数で値を宣言すると後から変更されないように値を保持しておくことができます。 ファイルパスやフラグの管理など、他の言語でも必須となりますよね。 javascriptの実装中もフラグなどの管理に定数を使いたくなることがあると思います。 javascriptでの記述は以下 const FILE_PATH = '/image/hoge.jpg'; const SPEED = 10; FILE_PATH = 'foo.jpg'; // できない SPEED = 1000; // できないプログラムをやっている人からすると当たり前な話ですが、 これには落とし穴がありconstはIE非対応という問題があります。 IE10まではconstが非対応IE10でconstを使おうとすると構文エラーとなります。 これはIE10以前でも同様にエラーとなっています。 MDNによると・・・ 現在の const の実装

    javascriptでconstを使わずに定数を実現する方法
    iww
    iww 2016/12/07
    『紳士協定として、大文字アンダースコアで変数を宣言して「この変数は定数と思ってね!」』 紳士なので、紳士協定を採用した
  • WebBrowser.InvokeScript メソッド (System.Windows.Controls)

    このブラウザーはサポートされなくなりました。 Microsoft Edge にアップグレードすると、最新の機能、セキュリティ更新プログラム、およびテクニカル サポートを利用できます。

    WebBrowser.InvokeScript メソッド (System.Windows.Controls)
    iww
    iww 2016/10/19
    C#からブラウザの中のJavaScriptの関数を実行する
  • JavaScriptでwindowを閉じるやつ - Qiita

    window.open('about:blank','_self').close(); とやると閉じることが出来るみたい。 一回自分自身に対して空タブを開くことでjsの操作対象にして、その上でclose()を実行している感じ。 ちなみにFireFoxはこれでもダメで、空タブが残ってしまうので諦めてください。 なお、

    JavaScriptでwindowを閉じるやつ - Qiita
    iww
    iww 2016/10/16
    セキュリティポリシーで自分で閉じるのを禁じられてるページを閉じるおまじない。 window.open('about:blank','_self').close();