1. firefox 访问不了localhost
最近发现我的firefox打不开localhost, 用IP可以,一开始没太当回事。后来要调试extension,打不开调试面板,因为调试需要连接localhost上的socket。
Google了半天,发现是firefox对hosts文件中localhost的写法有点挑剔(应该是最新版的问题,之前没问题)。 ::1 这种ipv6写法不行,只好把127.0.0.1也加上才能工作。
2. foreignObject里textarea一开始不显示
在做文本标注的时候,采用了在foreignObject里嵌入textarea的方案,最近发现svg里只有文本标注的时候,第一次打开显示不了,但是dom里文档结构都是没问题的。
鼠标点击或者拖动窗口之类的操作后,标注就能显示了。。。如果同时有其他标注也没问题。Google了好久,也没解决。。。 后来测了下edge和firefox, 竟然发现都能很好的工作。
最后也没真正解决,可能是chrome的bug吧。写了个workaround,每次render 文本标注的时候,做点额外的dom操作。。。
3. electron build 过程中wine, squirrel.windows 下载不了
最近的坑,Mac下即使可以翻墙了也下载不了这些依赖,只好从另外一台机器上copy过来。路径是 ~/Library/Caches/electron-builder/
4. chrome/ff extension webrequest
最近的一个需求是,希望记录浏览器的所有访问历史,并且区分哪些访问是成功的,哪些失败了,最好是把url和title都记录下来。
如果只是记录成功和失败的访问,onCompleted 和onErrorOccurred 基本上就能搞定了。通常浏览器访问一个页面都会有一堆请求,需要在过滤条件里使用"main_frame"来确保只处理第一个请求。
这两个事件返回结果里面只有url, 加上"responseHeaders" 选项后也只能拿到返回的headers, 并不能拿到title。
另外一个方法是chrome.history.onVisited, 能同时拿到url和title。但是并不能区分请求有没有成功。
Firefox 57以后可以在onBeforeRequest 事件里通过browser.webRequest.filterResponseData来拿到response body内容。https://github.com/mdn/webextensions-examples/tree/master/http-response
Chrome目前没法拿到返回的body。https://bugs.chromium.org/p/chromium/issues/detail?id=487422
网友评论