小编Pos*_*hin的帖子

Chrome 扩展 - 如何获取清单版本 3 (MV3) 中的窗口对象?

概述

我能够通过新的chrome.scriptingAPI成功注入我的 Javascript 脚本。

但是,我仍然无法window通过此注入的脚本访问页面的对象。

我尝试过的

回到 MV2,我曾经执行以下操作:

async function getWindow() {
    return new Promise(function (resolve, reject) {
      const script = document.createElement('script');
      script.text = `
            const _window = JSON.stringify(window);
            document.body.insertAdjacentHTML("beforebegin", "<div id='dummy' style='display:none;width:0;height:0;pointer-events:none;'>"+_window+"</div>")
        `;

      document.getElementsByTagName('head')[0].appendChild(script);

      const _window = document.getElementById('dummy');
      const data = JSON.parse(_window.innerText)

      script.remove();
      resolve(data);
    });
  }

 (async () => {
    const _window = await getWindow();
    console.log(_window)
  })();

Run Code Online (Sandbox Code Playgroud)

但这已经不可能了。它给了我以下错误:

拒绝执行内联脚本,因为它违反了以下内容安全策略指令:“script-src 'self'”。启用内联执行需要“unsafe-inline”关键字、哈希值(“sha256-iAKY8pCLpBsSPttuizEMbuFVrucrXcGUoo/RYdGQEyw=”)或随机数(“nonce-...”)。

基于该错误,我找到了这个答案这个问题的答案,但它并没有解决我的问题,因为前者适用于 MV2,后者使用外部脚本。我看不到让它与本地脚本一起工作。

我想要实现的目标

我想window从我的 Chrome 扩展程序访问给定网站的对象。

其他注意事项

  • 在我的清单中,我具有以下权限: …

google-chrome google-chrome-extension manifest.json

6
推荐指数
0
解决办法
1853
查看次数

VS代码:Python解释器找不到我的venv

我已经坚持了几天,如果可以的话,请帮我。

我的根项目文件夹上有venv文件夹。当我尝试设置Python解释器时,它仅显示我机器中安装的Python,而不显示我的根文件夹中的Python。

在我格式化PC并安装Windows 10 64位之前,它工作正常。(在Windows 7 64位之前运行)

我尝试过的事情:

  • 在工作区和用户设置中,通过pythonPath和/或手动设置路径venvPath
    "python.pythonPath": "F:/Web Dev/Python/Django/project_x_v2/backend/venv/Scripts/python.exe",
    "python.venvPath": "F:/Web Dev/Python/Django/project_x_v2/backend/venv/Scripts/python.exe",
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明

它向我显示了占位符中的正确位置,但是我没有选择从下拉列表中选择的位置:

在此处输入图片说明

有什么想法可以解决这个问题吗?

非常感谢你。

编辑:

  • 在图像中,它显示为“ python”,但我已将其更正为“ python.exe”,但仍然无法正常工作。
  • ~\AppData\...位于磁盘C:\中,而我的venv位于磁盘F:中。我不确定这是否相关;
  • venv在控制台中运行良好。

python django python-venv visual-studio-code

5
推荐指数
2
解决办法
168
查看次数

Shopify 应用程序 - 脚本标签 - 从商店检索数据时出现 CORS 错误

概述

我的 Koa 服务器中有一个自定义 REST API,我可以使用 React 在我的 Shopify 应用程序中很好地访问它。但是,当我尝试从脚本标签访问它时,出现 CORS 错误。

问题

我无法从脚本标签访问我的自定义 REST API 数据,但我可以从 Postman 和我的 React 应用程序访问它。

我尝试过的

  1. 安装koa/cors并设置 {origin: *}

代码

服务器.js

   server
      .use(router.routes())
      .use(router.allowedMethods())
      .use(CORS({ origin: "*" }));

      router.get("/api/test", async (ctx, next) => {
        ctx.body = {
          llama: "123",
        };
      });
Run Code Online (Sandbox Code Playgroud)

script_tag.js

  async function hello() {
    await _loadScript(
      "https://cdnjs.cloudflare.com/ajax/libs/axios/0.19.2/axios.min.js",
    );
    const data = await window.axios.get(
      "https://3b1b4258759f.ngrok.io/api/test?shop=panda-app-tests.myshopify.com",
      {
        crossDomain: true,
      },
    );
    console.log(data);
  }
Run Code Online (Sandbox Code Playgroud)

有什么想法可以在不使用cors-anywhere 的情况下解决这个问题吗?预先非常感谢您。

图片 API请求

rest script-tag reactjs koa shopify-app

3
推荐指数
1
解决办法
2430
查看次数

令牌身份验证返回 403(Axios + Django Rest Framework)

我已经尝试解决这个问题几个小时了,如果可以的话请帮助我。

当我尝试get在 React 应用程序中使用 axios 向 DRF Rest API 发出请求时,它返回 403。

应用程序.js:

      axios
        .get(API_POSTS, {
          headers: {
            Authorization: `Token 27dbb4dd8299792c8c52022f829da4ecec22f437`
          }
        })
        .then(res => {
          console.log("Success");
        })
        .catch(error => {
          console.log(error);
        });
Run Code Online (Sandbox Code Playgroud)

设置.py:

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'django.contrib.sites',
    # 3rd-party apps
    'rest_framework',
    'rest_framework.authtoken',
    'allauth',
    'allauth.account',
    'allauth.socialaccount',
    'rest_auth',
    'rest_auth.registration',
    'corsheaders',
    # Local
    'posts.apps.PostsConfig',
    'users.apps.UsersConfig',
]

CORS_ORIGIN_WHITELIST = [
    'http://localhost:3000',
]

# Rest Framework


REST_FRAMEWORK = {
    'DEFAULT_PERMISSION_CLASSES': [
        'rest_framework.permissions.IsAuthenticated',
    ],
    'DEFAULT_AUTHENTICATION_CLASSES': [
        'rest_framework.authentication.SessionAuthentication',
        'rest_framework.authentication.BasicAuthentication' …
Run Code Online (Sandbox Code Playgroud)

token django-rest-framework reactjs

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

Sublime Text:查找并删除所有重复项

我有一个包含以下内容的文件:

a
b
b
c
Run Code Online (Sandbox Code Playgroud)

我需要找到所有重复项并删除它们,所以它应该是这样的:

a
c
Run Code Online (Sandbox Code Playgroud)

命令“编辑>排列行>唯一”不会删除所有出现的情况。有什么建议么?谢谢你!

string sublimetext2

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

Shopify:在 Javascript 中使用来自 {% schema %} 的变量

我有一个使用以下架构的自定义部分:

{% schema %}
  {
    "name": "Custom",
    "settings": [
    {
        "type": "textarea",
        "id": "custom_text_product",
        "label": "Insert name of the product here",
        "default": "Product"
      },
    {
        "type": "textarea",
        "id": "custom_text_msg",
        "label": "Custom text",
        "default": "Insert text here"
      }
    ]
  }
{% endschema %}
Run Code Online (Sandbox Code Playgroud)

基本上我想要的是从每个 textarea 中获取文本,通过 Javascript 进行操作,然后将其添加到 DOM 中。

通过.liquid我会简单地做{{ section.settings.id }},但我不知道如何在 Javascript 中访问它们。因为它是一个大文本,我也不能将它作为数据属性添加到 DOM 中。

我试过遵循这个,但没有成功。

有人可以帮助我或向我推荐有关这方面的文件吗?

非常感谢!

javascript liquid shopify

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

Javascript:查找并删除*所有*重复的项目

我有一个包含以下元素的数组:

A
B
B
C
B
Run Code Online (Sandbox Code Playgroud)

如果一个项目出现多次,我必须删除它的所有出现次数.因此,它会是这样的:

A
C
Run Code Online (Sandbox Code Playgroud)

我已经找到了很多关于如何删除其他重复元素的例子,但仍然保留了"原始"元素,其中我找不到更接近它的东西,我真的迷失了.

我考虑过保存一个对象:1.项目的价值; 2.它出现多少次; 3.所有外观的位置.

如果出现的时间超过1,我会删除数组中的所有以下位置.这是个好主意吗?最好的方法是什么?

非常感谢你!

javascript arrays jquery

0
推荐指数
1
解决办法
72
查看次数