tey*_*non 4 javascript error-handling
题
有没有办法触发自定义Javascript错误消息?在Chrome中,我找到console.warn[error,log]了向浏览器发送邮件的信息.但是,这仅适用于Chrome(可能还有Firefox).但是,此行本身会在Internet Explorer中触发错误.
我希望能够触发违反Javascript函数规则的错误.例如,将对象作为值的函数要求对象具有"dialog"属性.如果该属性不存在,我想触发错误消息"模态窗口:没有指定对话框ID".
上下文
我正在构建一个PHP类和Javascript类,它们一起工作,以便我们的应用程序的程序员可以轻松地创建统一和可靠的对话框.
示例代码
try {
if (!params || !params['dialog']) {
throw "NoDID";
}
}
catch (error) {
if (error == "NoDID") {
//com.MySITE.js.warn("Modal Window: No dialog id specified.");
//Trigger custom error message here.
}
}
Run Code Online (Sandbox Code Playgroud)
我想将消息转到javascript窗口以便于开发人员调试.只是做"抛出"会导致"未捕获的自定义错误消息".我不希望用户在页面上的任何内容中看到此内容.我希望它可以在js日志中供开发人员使用.
if (console) console.warn(...
Run Code Online (Sandbox Code Playgroud)
(或者您可以使用console.error、console.log、console.trace等)。或者你也可以这样做:
console && console.warn(...
Run Code Online (Sandbox Code Playgroud)
或者,如果您不喜欢在代码开头处检查控制台,请执行以下操作:
window.console = console || {warn: function(){}};
Run Code Online (Sandbox Code Playgroud)
换句话说,如果浏览器没有控制台,请使用不执行任何操作的假“警告”方法来制作一个假控制台。如果这样做,您可以在整个代码中执行 console.warn ,而不必担心浏览器是否有控制台。
另一种方法是创建自己的警告方法:
function warn(message) {
console && console.warn(message);
}
Run Code Online (Sandbox Code Playgroud)
然后你可以做警告(“出了点问题”)。
当然,如果您想实际找出 IE 用户何时获得用户,您需要制作自己的警告消息,该消息必须向服务器上的某个位置发出 AJAX 请求(然后某个地方会发送您的电子邮件或其他东西)。
| 归档时间: |
|
| 查看次数: |
8928 次 |
| 最近记录: |