小编Nat*_*ard的帖子

在刷新页面之前,Chrome扩展内容脚本未加载

我有一个Chrome扩展程序内容脚本,我想在Trello主板上运行.目前,它仅包含:

console.log("Hello, world!");
Run Code Online (Sandbox Code Playgroud)

当您通过内部链接打开Trello板页面时,例如从"我的板"页面,内容脚本不会运行.它会在您刷新页面后运行.

我的清单文件包含:

{
  "manifest_version": 2,

  "name": "Temp Ext",
  "version": "1.0",

  "content_scripts": [
    {
      "matches": ["*://trello.com/b/*"],
      "js":["contentscript.js"]
    }
  ]
}
Run Code Online (Sandbox Code Playgroud)

任何人都可以帮我弄清楚为什么脚本在页面最初加载时没有运行?

编辑:更正的问题.仅在关注内部链接后发生问题,而不是任何链接.

javascript google-chrome-extension trello

26
推荐指数
1
解决办法
2万
查看次数

如何在不终止网站的情况下捕获 Yesod 中的异常?

我是 Yesod 和 Haskell 的新手,所以请耐心等待,但我有一个程序可以接受文件、计算单词数并在新的 Yesod 网页上显示结果。我需要一种更优雅地捕获异常的方法。例如,如果它在隐藏文件上运行以下函数:

wordCount :: String -> String -> String

wordCount ('.' : _) _   = error "Cannot count hidden files."
wordCount name contents = "<p>There are <b>" ++ show (length $ words contents) ++ "</b> words in your file <i>" ++ name ++ "</i>.</p>"
Run Code Online (Sandbox Code Playgroud)

我想显示该错误消息,然后显示供用户提交新文件的表单。现在,它只是转到一个页面,显示“加载页面时与服务器的连接已重置”。

我认为 Yesod 有自己的一套 catch 函数,我可能必须隐藏它们才能编写自己的函数,但我不确定它们在哪里,并且在任何文档中都找不到对它们的任何引用。我不希望如果用户输入了错误的文件,网站就会崩溃。

任何帮助将非常感激。

编辑:感谢您的建议。我意识到以这种方式抛出错误并不是处理错误的最佳方法,但问题实际上是我正在使用现有的 Haskell 代码,这些代码通常从终端运行,而不是 Yesod 站点。我使用了 wordcount 作为一个小例子,但实际上它是数十个文件,具有数十个函数和分散的错误抛出。希望我能够捕捉到这些,而不必完全修改现有代码中的每个函数。如果有人对如何在 Yesod 中捕获异常有任何建议,我将非常感激。

haskell exception yesod

5
推荐指数
1
解决办法
561
查看次数