我正在使用清单 V3 开发 chrome 扩展。该扩展的核心功能是使用户能够将数据从网站发送到我的 django 应用程序的 REST API,其中用户已经登录。在本地测试时一切都很好,但是当我去登台测试时,我发现使用 HTTPS django 需要在 POST 标头中使用“referer”来进行 CSRF 保护。
据我发现,chrome 扩展只是不附加该标头。所以我declarativeNetRequest使用以下代码尝试了 API。然而,这仅当我在选项卡中打开 URL 时才有效。当调用 fetch 来发布到相同的 URL 时,规则不匹配。这是在 V3 中使用 fetch 时强制引用标头的正确方法吗?谢谢!
清单.json:
...
"permissions": [
...
"declarativeNetRequestWithHostAccess",
"declarativeNetRequestFeedback"
],
"declarative_net_request": {
"rule_resources": [{
"id": "ruleset_1",
"enabled": true,
"path": "rules.json"
}]
},
...
Run Code Online (Sandbox Code Playgroud)
规则.json:
[
{
"id": 1,
"priority": 1,
"action": {
"type": "modifyHeaders",
"requestHeaders": [
{
"header": "Referer",
"operation": "set",
"value": "whatever"
}
]
},
"condition": {
"urlFilter": "https://api.myserver.com",
"resourceTypes": …Run Code Online (Sandbox Code Playgroud) 我想随机生成这样的东西.
233 + 333 = 566
我的意思是第一个数字,运算符和第二个数字是随机生成的.
所以,我现在写了这个代码.
var x = parseInt(Math.random()*1000),
y = parseInt(Math.random()*1000),
operators = ['+', '-', '*', '/'],
operatorNum = parseInt(Math.random()*4),
operator = operators[operatorNum],
result;
result = x + operator + y;
Run Code Online (Sandbox Code Playgroud)
但这只是给我一个像"748/264"字符串的东西.它没有给我生成计算的结果.
我想我需要将运算符从字符串转换为运算符类型.但是,我认为没有运营商类型.
编辑
我正在构建Chrome扩展程序.根据Chrome扩展程序政策,我不允许使用该eval功能.
我有一个简单的 Chrome 应用程序。有一个base64字符串。在其中,我存储了一个 PDF 文件,我想在新的window或iframe.
我尝试使用创建一个 iframe src="data:application/pdf;base64,.."。
之后,我收到此错误:
\n\n\n\n拒绝从\n \'data:application/pdf;base64,JVBERi0xLjQKJcOkw7zDtsOfCjIgMCBvYmoKPDwvTGVuZ3R\xe2\x80\xa6Q4RUU5MzdDRDQyM0RFNEI4MTkzNDU3MzIzMTM2OQo+PgpzdGFydHhyZWYKMj加载插件数据A0NTQKJSVFT0YK\'\n 因为它违反了以下内容安全策略指令:\n "default-src \'self \' chrome 扩展资源:“。请注意,\n \'object-src\' 未显式设置,因此 \'default-src\' 被用作\n 后备。
\n
我一直致力于创建我的第一个 chrome 扩展。我已经完成了几个可以在https://developer.chrome.com/extensions/getstarted上找到的示例扩展
如何制作一个扩展程序,以返回 Chrome 中打开的选项卡上所有图像的 url 列表?我已经问过这个问题,但我已经更新了我的问题,希望能让它更清楚。
我知道 javascript 的基础知识,所以我想用该语言创建扩展。这与另一个不同,因为我想获得完整的 url,我想使用简单的 javascript 而不是尝试使用我不知道的 json。
这是我的 manifest.json 文件
{
"name": "Getting Started",
"description": "Get The sources of the images",
"version": "2.0",
"permissions":[
"activeTab",
"tabs"
],
"browser_action":{
"default_title": "Image Source",
"default_popup": "popup.html"
},
"content_scripts":[
{
"matches": ["<all_urls>"],
"js": ["content.js"]
}
],
"manifest_version": 2
}
Run Code Online (Sandbox Code Playgroud)
这是我的 content.js 文件
var len = document.images.length;
var imgs = document.images;
var sources = "";
for (var i = 0; i < imgs.length; i++){
sources …Run Code Online (Sandbox Code Playgroud) 我对javascript和chrome-extension非常陌生,我尝试创建阻止某些域的扩展。我想将这些域存储在文件中,也许使用adblock的方法。
我知道有,localstorage但是这是存储数据的唯一方法吗?
如果存储在文件中,如何从javascript扩展名中打开它?
谢谢
我的Chrome扩展程序显示了.mp3文件链接列表,我需要获取每个元素的比特率.我该怎么计算呢?
UPDATE
解决了它.
通过Mozilla中的Web扩展加载Page后,我想执行操作,
我尝试了与波纹管相同的镀铬方法
browser.tabs.onUpdated.addListener(function (tabId , info) {
if (info.status === 'complete') {
// your code ...
}
});
Run Code Online (Sandbox Code Playgroud)
但是它不能很好地工作,在某些情况下,我无法获得“完整”状态,有时网页中存在多个iframe。
那么,有什么解决方案来检查天气页加载完成吗?
javascript mozilla google-chrome-extension firefox-addon-webextensions
如何仅使用JavaScript下载文件?
请不要给我答案
"Change theMIMEin the sever"
要么
window.open(URL,"_blank")
因为我知道还有其他解决方案.谢谢.
编辑:
我要下载的.JSON文件是一个文件.
javascript ×7
base64 ×1
fetch-api ×1
firefox-addon-webextensions ×1
iframe ×1
jquery ×1
mozilla ×1
pdf ×1