【发布时间】:2017-11-10 20:43:35
【问题描述】:
function hasLiedAboutBrowser()
{
// Assume browser is Firefox but user agent fakes Google Chrome browser
var browser = 'Chrome';
// We create an error to see how it is handled
var errFirefox;
try
{
// eslint-disable-next-line no-throw-literal
throw 'a';
}
catch (err)
{
try
{
console.log('before err.toSource() line'); // This line will work on every browser
err.toSource();
console.log('after err.toSource() line'); // This line will work only on Firefox browser
errFirefox = true; // This line will work only Firefox browser
}
catch (errOfErr)
{
// if err.toSource() throws an exception browser is not a firefox.
errFirefox = false;
}
}
if (errFirefox && browser !== 'Firefox' && browser !== 'Other')
{
console.log("You lied about your browser.");
}
else
{
console.log("All fine");
}
}
hasLiedAboutBrowser();
这段代码告诉我们用户何时对浏览器撒谎。
我需要的是“更改 firefox javascript 错误处理规则”,这样 firefox 将像其他浏览器一样处理错误
我该怎么做?
1-) 从源代码编译 Firefox? (如果是的话,规则在哪里?)
2-) 更改omni.ja 存档文件上的一些javascript 代码? (不太可能)
任何想法如何做到这一点?
【问题讨论】:
标签: javascript firefox browser error-handling gecko