Javascript中的函数返回行为
我有一个<a href='...'>link</a>
,我想调用一个自定义警告,如果他们点击它,然后选择一个“确定”或“取消”按钮与HTML中的基础采取适当的行动。如果“确定”,则默认操作或者“取消”。Javascript中的函数返回行为
在HTML代码的代码是:
<div id="dialogoverlay"></div>
<div id="dialogbox">
<div>
<div id="dialogboxhead"></div>
<div id="dialogboxbody"></div>
<div id="dialogboxfoot"></div>
</div>
</div>
<a href='sumcodehere' return onclick=\"javascript: return Warn.render(\'This operation cannot be reversed.\')\"><img></a>
JavaScript代码如下:
<script>
function Warn() {
this.render = function(dialog) {
var winW = window.innerWidth;
var winH = window.innerHeight;
var dialogoverlay = document.getElementById('dialogoverlay');
var dialogbox = document.getElementById('dialogbox');
dialogoverlay.style.display = "block";
dialogoverlay.style.height = winH+"px";
dialogbox.style.left = (winW/2) - (550 * .5)+"px";
dialogbox.style.top = "300px";
dialogbox.style.display = "block";
document.getElementById('dialogboxhead').style.background = "url('../images/warningHead.gif') no-repeat";
document.getElementById('dialogboxhead').style.height = "30px";
document.getElementById('dialogboxbody').style.background = "#fbfab9";
document.getElementById('dialogboxbody').innerHTML = dialog;
document.getElementById('dialogboxfoot').style.background = "#fbfab9";
document.getElementById('dialogboxfoot').innerHTML = '<button onclick="return Warn.ok(); return false">Go Ahead and Delete</button> <button onclick="return Warn.cancel(); return true">Get Me Out Of Here!</button>';
return false;
}
this.ok = function() {
document.getElementById('dialogbox').style.display = "none";
document.getElementById('dialogoverlay').style.display = "none";
return true;
}
this.cancel = function() {
document.getElementById('dialogbox').style.display = "none";
document.getElementById('dialogoverlay').style.display = "none";
return false;
}
我想这在Firefox和展出行为是哪个按钮会弹出警告对话框,但是两个按钮在点击时都会返回“false”。
起初HTML需要固定:(删除未知return
属性并固定在onclick
属性的引用)
<a href="sumcodehere" onclick="return warn.render('This operation cannot be reversed.')">
<img src="..." alt="..." />
</a>
然后,在JS,Warn()
看起来像一个构造函数,利用它和create a global object:
var warn = new Warn();
请注意t开头的小写字母他变量名称。内联处理程序中使用相同的变量。
将事件监听器附加到元素的更好方法是使用addEventListener
方法。
引用的原因是因为这是由Perl代码中的“print”语句生成的代码...因为它包含在引号内部,引号必须转义。 – 2014-09-22 19:48:17
@ D.LawrenceBarksdale嗯,在这篇文章中没有提及Perl。无论如何,我已经发布了最终解析的HTML。你是否让事件监听者工作? – Teemu 2014-09-23 04:02:23
起初,“”的HTML存在一些问题。 'onclick'似乎有一个未知的'return'属性,不必要的标签和引用错误。在JS部分''这''在'警告()'不是你想象的那样。看起来你在混合[objects](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Working_with_Objects)和[functions](https://developer.mozilla.org/en -US/docs/Web/JavaScript/Reference/Functions)。 – Teemu 2014-09-22 16:08:43
好的......这就是我需要的反馈......应该怎样才能让它做我想找的? – 2014-09-22 16:37:34