javascript - 绕过 undefined variable

标签 javascript greasemonkey

我试图访问的这个网站有

  <script type="text/javascript">
function setCanvasSize()
{
  FB.Canvas.setAutoResize(false);
  FB.Canvas.setSize({ "width": 760, "height": 730 });
}
window.fbAsyncInit = function() {
  setCanvasSize();
}
$(document).ready(function() {
  setCanvasSize();
});

在主页上,但是 FB 是未定义的,因为我在我的主机文件中屏蔽了 Facebook。

每当我尝试访问它时,它都会吐出错误 Uncaught ReferenceError: FB is not defined 并且我看到一个空白页面。

我尝试使用 greasemonkey 脚本为页面设置 var FB = 0;,但它不起作用。任何人都知道我该如何解决这个问题?有没有办法用 greasemonkey 从页面中删除这个 javascript?

最佳答案

我别无选择,只能在这个对象不存在时“覆盖”它。

将此代码放在页面的最后:

if (typeof FB == "undefined" || !FB) {
    FB = { 
        Canvas: {
            setAutoResize: function() {}, 
            setSize: function() {}
        }
    };
}

这样,$(document).ready() 中的代码将使用此虚拟对象而不会崩溃。

关于javascript - 绕过 undefined variable ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8960395/

相关文章:

greasemonkey - 使用 Greasemonkey 脚本跨域进行本地存储

javascript - 循环遍历复选框并减去一个值

javascript - 电话间隙 : Cannot call remote hosts via HTTP

jQuery-UI 在没有 CSS 或自定义的情况下无法在我的用户脚本中工作?

jquery - 如何确定我观看过哪些 YouTube 视频?

javascript - 使用 GreaseMonkey 停止加载缓慢的脚本

javascript - 除了默默无闻的安全性之外,同源策略还提供什么安全优势?

javascript - 在 React 中渲染模式

javascript - 使用 JQuery 操作 Tinymce 文档 DOM

javascript - jQuery SO 投票对象和范围