Предупреждение Javascript с указанием URL сайта. Как я могу удалить URL сайта из верхней части предупреждения JavaScript? - PullRequest
5 голосов
/ 18 октября 2011

окно предупреждения javascript, показывающее url + msg. Я ничего не пропустил, но в верхней части окна предупреждения отображается URL. как я могу удалить этот URL? URL-адрес показывает, когда мой сайт перенаправлен с другого сайта.

Означает перенаправление с abc.com на xyz.com и в окне оповещения с xyz.com + msg?

Ответы [ 2 ]

2 голосов
/ 18 октября 2011

Как я могу удалить URL сайта из верхней части предупреждения JavaScript?

Вы не можете.Браузер добавляет, что пользователь знает, что сообщение не от самого браузера.

Единственное, что вы можете сделать, это полностью прекратить использование alert и вместо этого использовать современные методы для наложения элемента наверхняя часть страницы.Вы можете написать это самостоятельно или использовать любую из множества библиотек «лайтбоксов».Обратите внимание, что это немного меняет то, как вы кодируете, потому что, хотя alertconfirm и prompt) приводят к тому, что выполнение скриптов на странице останавливается, пока они на экране, вы не можетесделайте это в своем собственном коде, так что вы должны структурировать свой код, чтобы продолжить, когда он получит событие, которое пользователь отклонил.Обычно библиотека дает вам обратный вызов, который вы можете использовать для этого, например, этот alert код:

function foo() {
    doSomething();
    alert("Foo!");
    if (x != 42) {
        doSomethingElse();
    }
}

становится

function foo() {
    doSomething();
    someNiftyLightboxThingy("Foo!", function() {
        if (x != 42) {
            doSomethingElse();
        }
    });
}

Не сложно, вам просто нужно получитьпривыкли к этому.

У вас нет , чтобы использовать библиотеку для этого, но это позволяет вам не беспокоиться о крайних случаях и может предложить вам больше возможностей.Вот довольно простой пример:

HTML:

<input type='button' id='btnPopup' value='Click for Pop-Up'>

CSS:

iframe.shim {
  width:            100%;
  height:           100%;
  position:         absolute;
  left:             0px;
  top:              0px;
  z-index:          100;
  background-color: #fff;
  opacity:          0.5;                 /* Standard */
  filter:           alpha(opacity = 50); /* For IE */
}
div.overlay {
  z-index:          101;
  border:           1px solid black;
  background-color: #ecc;
  position:         absolute;
  left:             100px;
  top:              100px;
}

JavaScript:

function doVerySimplePopup(text, callback) {
  var shim, div, parent = document.body;

  shim = document.createElement('iframe');
  shim.className = 'shim';
  parent.appendChild(shim);

  div = document.createElement('div');
  div.className = 'overlay';
  div.innerHTML = text;
  parent.appendChild(div);
  div.onclick = function() {
    parent.removeChild(div);
    parent.removeChild(shim);
    if (typeof callback === "function") {
      try { callback(); } catch (e) { }
    }
  };
}

Живой пример

Очевидно, что вы захотите немного рассказать об этом, и опять же, это простой пример, а не полное решение.

1 голос
/ 09 августа 2016

@ TJ Crowder ответ правильный при нормальных обстоятельствах.Хотя и не полностью.Есть способы обойти это, и в конце концов получить то, что вы хотите;

Тестировал его на http://htmledit.squarefree.com,, просто введите текстовое поле:

<script>alert('whatever');</script>

И вывод - это окно предупреждения без URL.Кажется, работа с большинством онлайн-редакторов HTML ...

Это упрощено;

<iframe id="myIframe" style="display:none;"></iframe>
<script>
var ifrm = document.getElementById('myIframe');
ifrm = ifrm.contentWindow || ifrm.contentDocument.document || ifrm.contentDocument;
ifrm.document.open();
ifrm.document.write('<script>alert("hello world");<\/script>');
ifrm.document.close();
</script>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...