Измените IE на chrome showmodaldialog : заставьте оставаться во всплывающем окне

#javascript #jquery #google-chrome #modal-dialog #popup

Вопрос:

у меня есть проект IE, который я хочу изменить на chrome. У меня проблемы с всплывающими окнами, потому что я использую showmodaldialog, и поэтому он не интерпретируется chrome.

Меня также беспокоит то, что мое приложение содержит всплывающие окна во всплывающих окнах, и поэтому мне нужно заблокировать самое последнее всплывающее окно. Я хочу заставить пользователя закрыть или проверить текущее всплывающее окно.

Я видел много исправлений, но ничего простого, я просто изменяю с помощью window.open(). Мне нужно знать, существует ли что-то, чтобы заменить showmodaldialog, не нарушая мои 300 всплывающих окон..

Если у вас есть какие-либо проекты / демонстрации по этому вопросу, спасибо

Мой код, т. е. javascript :

 function modal_opw(_url, _params, _width, _height, _title) {  _url_choix_client = _url;  _url_params = _params;  _url_popup = 'popup_search_redirection.htm';   if (_url.indexOf('geocodage') !== -1 || _url.indexOf('recup_adresse_normalisation') !== -1 || _url.indexOf('impression_tournee') !== -1 || _url.indexOf('intervention_transfert') !== -1)  _url_popup = 'popup_search_redirection_google.htm';   if (_url.indexOf('impression_tournee_affichage_detail_tournee') !== -1)  _url_popup = 'popup_search_redirection.htm';   _titre = _title;  _height = parseInt(_height, 10)   50;  _width = parseInt(_width, 10);  var _popup = window.showModalDialog(  _URL_SITE   _url_popup,  self, 'toolbar:0;location:0;directories:0;status:0;menubar:0;scroll:1;resizable:0;help:0;dialogWidth:'   _width   'px;dialogHeight:'   _height   'px;center:1'  );   return _popup; }  

Я просто заменяю на :

 (function () {  window._smdName = window._smdName || Math.round(Math.random() * 1000000000);  window.spawn = window.spawn || function (gen) {  function continuer(verb, arg) {  var result;  try {  result = generator[verb](arg);  } catch (err) {  return Promise.reject(err);  }  if (result.done) {  return result.value;  } else {  return Promise.resolve(result.value).then(onFulfilled, onRejected);  }  }  var generator = gen();  var onFulfilled = continuer.bind(continuer, 'next');  var onRejected = continuer.bind(continuer, 'throw');  return onFulfilled();  };  window.showModalDialog = window.showModalDialog || function (url, arg, opt) {  url = url || ''; // URL of a dialog  arg = arg || null; // arguments to a dialog  opt = opt || 'dialogWidth: 300px; dialogHeight: 200px'; // options: dialogTop;dialogLeft;dialogWidth;dialogHeight or CSS styles  opt = opt  .replace(/dialog/gi, '') // remove all of dialog strings  .replace(/ /g, '') // remove all blank characters  .replace(/:/g, '= ') // replace all of ':' to '= '  .replace(/,|;/g, ', ') // replace all of ',' or ';' to ', '  .replace(/width/gi, 'width') // replace all 'width' to lowercase  .replace(/height/gi, 'height') // replace all 'height' to lowercase  .replace(/(d )px/g, '$1'); // remove all of 'px'  console.log(opt);  var caller = showModalDialog.caller.toString();  var dialog = window.open(url, 'smd_dialog_'   window._smdName, opt, false);  dialog.dialogArguments = arg;  dialog.addEventListener('unload', function (e) {  e.preventDefault();  });  // if using yield  if (caller.indexOf('yield') gt;= 0) {  return new Promise(function (resolve, reject) {  dialog.addEventListener('unload', function () {  var returnValue = dialog.returnValue;  resolve(returnValue);  });  });  }  // if using eval  var isNext = false;  var nextStmts = caller  .replace(/(window.)?showModalDialog([^)] )/g, 'showModalDialog(%%%%%%%)')  .split('n')  .filter(function (stmt) {  if (isNext || stmt.indexOf('showModalDialog(') gt;= 0)  return isNext = true;  return false;  });  var unloadEventHandler = function () {  if (dialog.location.href == 'about:blank') {  return setTimeout(function () { dialog.addEventListener('unload', unloadEventHandler); }, 250);  }  var returnValue = dialog.returnValue;  nextStmts[0] = nextStmts[0].replace(/(window.)?showModalDialog(%%%%%%%)/g, JSON.stringify(returnValue));  eval('{n'   nextStmts.join('n'));  };  dialog.addEventListener('unload', unloadEventHandler);  throw 'Execution stopped until showModalDialog is closed';  }; })();   function opw(_url, _nom, _width, _height) {  msw = window.open(_url, _nom, 'menubar=0,scrollbars=1,width='   _width   ',height='   _height   ',resizable=0,toolbar=0'); }