javascript警告框显示网址+消息。我没有通过任何东西,但它显示警报框顶部的网址。我怎么能删除这个网址?当我的网站从另一个网站重定向时,该网址会显示。
表示从abc.com重定向到xyz.com和警告框显示xyz.com + msg?
答案 0 :(得分:2)
如何从javascript警告顶部删除网站网址?
你做不到。浏览器添加该内容,以便用户知道该消息不是来自浏览器本身。
您唯一能做的就是完全停止使用alert
,而是使用现代技术在页面顶部覆盖元素。您可以自己编写,也可以使用其中的任何“lightbox”库。请注意,这样做会改变您对代码进行编码的方式,因为alert
(以及confirm
和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 :(得分:1)
@ T.J。在正常情况下,克劳德的答案是正确的。虽然不完全。有办法绕过这个,并最终获得你想要的东西;
在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>