javascript - Tampermonkey 脚本被 CSP 错误阻止
问题描述
我是 javascript 和 Tampermonkey 的新手。我想在 Memrise 的网站上添加一个框架。代码如下:
// ==UserScript==
// @name Merise
// @namespace http://tampermonkey.net/
// @version 0.1
// @description try to take over the world!
// @author k1
// @match https://app.memrise.com/aprender/*
// @icon https://www.google.com/s2/favicons?domain=memrise.com
// @grant none
// ==/UserScript==
(function() {
'use strict';
var word = document.getElementsByClassName("sc-1nck79x-5 jPETsr")[0]
var bdy = document.getElementsByClassName("sc-r1ec2z-1 evBYsl")[0]
var defl = "https://learnersdictionary.com/definition/" + word.innerHTML
var fr = document.createElement("IFRAME");
fr.height = "500px"
fr.src = defl
fr.style.maxWidth="90%"
bdy.appendChild(fr);
})();
但是代码执行由于错误而被阻止:内容安全策略:页面的设置阻止了内联资源的加载(“script-src”)。
如果有任何方法可以解决这个问题,请告诉我如何解决这个问题。谢谢。
解决方案
使用GM_addElement来规避此类 CSP 限制:
// ==UserScript==
// @name Merise
// @match https://app.memrise.com/aprender/*
// @grant GM_addElement
// ==/UserScript==
var word = document.getElementsByClassName('sc-1nck79x-5 jPETsr')[0].textContent;
var bdy = document.getElementsByClassName('sc-r1ec2z-1 evBYsl')[0];
GM_addElement(bdy, 'iframe', {
src: 'https://learnersdictionary.com/definition/' + encodeURIComponent(word),
style: 'width: 90%; height: 500px;',
});
推荐阅读
- css - 页面适合浏览器响应式设计视图中的宽度,但不适用于手机
- java - 以 root 身份运行“.jar”文件的权限不足
- javascript - 如何使用 koa-router 路由 URL
- c# - 查找 3D 圆形边是否位于 3D 空间中 N 边的 3D 平面多边形内
- pandas - pandas df 到 spark df 转换在 Databricks 笔记本上需要很长时间
- excel - 将 VBA 宏录制到通用函数中
- kubernetes - 使用 StatefulSets 将 k8s pod 1:1 映射到 GCE 中的 VM
- laravel - 使用迁移更新外键?
- angular - 将媒体编辑器添加到 Angular 项目
- git - 无法将 Vue 项目推送到 Github