fireFox 46 以降、javaScript の showModalDialog() が使えなくなる!代替となるJavaScriptライブラリは?

このQ&Aのポイント
  • fireFox 46 以降、fireFox で showModalDialog() が使えなくなることがアナウンスされました。
  • この関数の代替として使えるおススメのJavaScriptライブラリを教えてください。
  • マルチプロセスモードで実行されていない場合は、従来通り showModalDialog() が使えるということです。
回答を見る
  • ベストアンサー

fireFox で showModalDialog

fireFox 46 以降、javaScript の showModalDialog() が使えなくなるというアナウンスが 以下でされています。 https://www.fxsitecompat.com/ja/docs/2015/window-showmodaldialog-will-be-removed/ window.showModalDialog が削除されます 更新: Firefox 46 以降、Firefox がマルチプロセスモードで実行されている場合、このメソッドは無効化されます。 マルチプロセスモードで と言っているので、シングルプロセスモードなら従来通り使える という事なのでしょうか? また、この関数の代替として使えるおススメのJavaScriptライブラリがありましたら 教えて下さい よろしくお願い致します。

質問者が選んだベストアンサー

  • ベストアンサー
  • satoklew
  • ベストアンサー率22% (87/385)
回答No.1

可能であれば画面設計を見なおして擬似モーダルにしたほうがよいと思います。 擬似モーダルであれば、jqueryを使うことで結構簡単に実装出来ます、ライブラリもいろいろとあります。がオススメはjqueryを使って自分で作ることです。 ただし擬似モーダルにすると「擬似」ですので、ウィンドウ内から外に出すことができなかったり、擬似だけ残すということをできなくなります。

関連するQ&A

  • showModalDialogで開いた画面をonChangeでリロードするには・・・

    初めて投稿します。今、showModalDialogで困っています。 まず画面上のボタンからjsファイル内のJavaScriptのメソッドを呼び出し、 その中でshowModalDialogを使って開いた小さな窓にカレンダーを表示します。 このカレンダー画面には月を選択するセレクトボックスがあり、 このセレクトボックスで月を変更した際にカレンダーをリロードする 処理を作ろうとしています。しかしこのリロードで「オブジェクトを 指定してください」というエラーが出てしまいます。 何がいけないのでしょうか・・・? 処理内容はこんな感じ・・・ 1.jsファイル内のJavaScriptメソッドのshowModalDialog呼び出し部分 window.showModalDialog("modal.html"); 2.呼び出されたmodal.html内ではbodyタグを以下のようにする <body onLoad="javascript:loadPage();"> 3.2で呼び出されたmodal.html内のJavaScript、loadPage()はこんな感じ writePage()は1のjsファイル内の別のメソッド function loadPage() { writePage(); } 4.3で呼び出されたjsファイル内のJavaScript、writePage()はこんな感じ function writePage() { this.document.open(); this.document.writeln("Calendar"); this.document.writeln("<select onChange=\"javascript:loadPage();\">"); this.document.writeln("<option>1月"); this.document.writeln("<option>2月"); this.document.writeln("</select>"); }

  • FireFoxでsetCaptureするには

    最近JavaScriptをかじっているものです。 早速ですが、IE5.5以降限定でsetCaptureというメソッドがありますが、FireFoxなど、Netscape系のブラウザで同様の機能を実現するにはどうすればよいでしょうか? ブラウザのウィンドウからマウスが出る事を想定しているので、上位エレメントのイベントを使う、という事はできないと思います。 よろしくお願いします。

  • Firefoxでの不具合?

    ボタンをクリックするとtextareaの内容をコピーするものを 作っているのですがFirefoxでは、コピーもできず、 アラートも表示されません。 IE6では正常に動作したのですがどこが原因なのかわかりません。 以下のhtmlを記述しています。 <script language="JavaScript"> <!-- function pencilcp(pencilid){ var str = document.getElementById(pencilid).value; window.clipboardData.setData("text",str); alert("コピーしました"); } //--> </script> <textarea id="penciltext"> <a href="URL" target="_blank"> <img src="ファイル名" alt="代替" width="120" height="40" border="0" /> </a>

  • Firefox利用時の注意点

    javascriptで簡単なゲーム制作をしているのですが、firefoxで妙に動作が重かったり、処理落ちしすぎてブラウザが固まったりすることがよくあります。 chromeやIEでは問題なく動きます。(windows8モードにしてないchromeで、動作がおかしいことはありました) 考えられる原因が多すぎると思いますが、一般的にどんな点に気をつけたら良いのでしょうか。 たぶんなにか本当に初歩的なところに問題があると思うのですが。。 アドバイスがありましたら、ご教授いただけると嬉しいです。 ちなみに各ブラウザは全部最新バージョンで、jqueryなどライブラリは使ってません。 またゲームの種類はシューティングやアクションで、全般的に動きが遅かったり、弾がいっぺんにたくさん出るところでフリーズしたりします。 まったく動かなかったということは今までなかったと思います。 よろしくお願いします。

  • Ajax非同期通信の多重リクエストによる通信障害?

    Ajaxの通信において、成功するケース、失敗するケースが 不明な原因によって頻発しています。 サーバー環境は Apache(1.3.27)、PHP(4.2.3 )、 PEARのHTML_AJAXを使用しております。 apache2系では出ていない症状なので、 マルチスレッド/マルチプロセスの処理の違いが あらわれているのかとも思いますが・・・ 多重リクエストの問題だとしたら、どのように対処したら よいでしょうか? 調査したところ「xmlhttp.abort()メソッドでリクエストのキャンセルを行う。」といった記述もありましたが、今使用しているライブラリとは別もののようなので、どう対処すべきが分からず困っています。

  • Ajax(XMLHttpRequest)で取得したHTMLをDOMにし

    Ajax(XMLHttpRequest)で取得したHTMLをDOMにしたい ☆環境 ・Firefox 3.x ・greasemonkeyで動作させるJavascript ※上記環境からIEは考慮しないが、Google Chromeは考慮する可能性大 ☆行いたいこと xmlに成形されていない生のhtmlを、XMLHttpRequestで取得しDOMとして利用したい ☆調べたこと https://developer.mozilla.org/ja/XMLHttpRequest overrideMimeType()メソッドを使用すれば、responseXMLでエラーにならない(だけ) ☆現状 一応[window.]document.createElement()でテンポラリ用のdivを用意し、 responseTextで一度書き込み、改めて[window.]documentから動作させています。 この方法だと非同期にしづらいため、なにか良い方法はないでしょうか? よろしくお願いします。

    • ベストアンサー
    • AJAX
  • 別window最大化javaがIE8だけエラー

    Javaがほぼ初心者なので、困っております。どなたか教えてください。 別windowを最大化で開くjavaとhtmlのソースが下記なのですが、FireFoxやCromeやIE10などは ちゃんと動作してくるのですが、IE8だけエラーが生じてしまいます。 エラーメッセージは「window.open("test.html","fullscreen=yes");」の引数が無効とのメッセージです。 IE8だと"fullscreen=yes"が使用できないのかなと思いましたが、どの引数を使用すればよいか不明です。IE8で動作するにはどうすればいいのでしょうか。 下記がJavaとhtmlのソースコードになります。 ▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼ <script language="JavaScript"> <!-- function test() { window.open("test.html","fullscreen=yes"); } // --> </script> <a href="javaScript:test()">test</a> ▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲ 「IE4以降のようですが現状なら特に問題なさそうです。」と 記載あるので以下方法も試してみましたがダメでした。 http://hitoxu.com/095 ちなみに、IE8だけに動作してくれるjavaでもかまいません。

  • Windowsでのfork方法

    Windowsプログラムで、UNIXライクなマルチプロセス処理を書きたいのですが、 fork()が使えないようで、代替の方法がわかりません。 CreateProcess()というAPIはありますが、これは単に実行モジュールの呼び出し を行う関数で、UNIXのようなfork()でプロセスを分けるものでは ないようです。 子プロセス内部で、構築済みのDLLを複数ロードしたいのですが、 そのDLLはマルチスレッド対応になっていないため、 マルチスレッド処理はできません。 具体的にやりたいと思っていることをプログラム的に書くと、 およそ以下のような処理です。(UNIXでよくやる手法です) ----- 実行処理のメイン() {  int p_pid[128];  for(int i=0; i<10; i++) {   switch(pid[i]=fork()){    case 0: // 子プロセスとしての処理     子プロセスが呼び出す関数();     exit(0);    case -1:     break;    default:     break;   }  } } void 子プロセスが呼び出す関数() {  LoadLiblary() と GetProcAddress() で、DLLを動的にロードし、  DLL内のAPIを呼び出す。  DLLがマルチスレッド対応でなくても、この関数は各々が別プロセスとして  複数同時実行されるので、問題なく処理できるはず。 } ----- この処理は、Windowsでは無理なのでしょうか? もしできるなら、Windowsで用意されているランタイムライブラリかAPIを 教えていただけないでしょうか? よろしくお願いします。

  • showModalDialogについて

    FireFoxでshowModalDialogを動作させる際、centerのオプションを有効にしても生成されるダイアログボックスが中央に表示されません。 元々FireFoxではオプションが効かないのでしょうか? どなたかご存知でしたらご回答お願いいたします。 動作環境 ブラウザ:Firefox(ver 34.0.5)

  • イベントハンドラメソッドに関して教えてください

    お世話になります。イベントハンドラメソッドについて教えてください。 -----JS----- function f() { window.alert("Click"); } ---(1) document.myform.mybtn2 = function(){ ---(2) window.alert("Click"); } -----HTML----- <form id="myform" name="myform"> <input type="button" id="mybtn1" name="mybtn1" value="Click" onclick="f()" /> ---(1) <input type="button" id="mybtn2" name="mybtn2" value="Click" /> ---(2) </form> Q:上記のコードで(1)の場合だと正常にalert画面が出ますが、(2)の場合だと何も起こりません。 FirefoxのJavaScriptコンソールで調べると下記のエラーが表示されます。 documnet.myform has no propaties なぜエラーが発生するのか分からずに困っています。 解決の手がかりでもよいので教えてください。

専門家に質問してみよう