- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试为 Chrome 创建一个类似于 Google Reader 的浏览器操作扩展,以便与我有权访问其 API 的不同 RSS 阅读器一起使用。这会在浏览器操作中产生 X 个链接,每个链接都需要使用 API 指定的 URL 打开一个新选项卡。
但是,每当单击链接时,我都会收到以下错误消息:“拒绝执行 JavaScript URL,因为它违反了以下内容安全策略指令:“script-src 'self' chrome-extension-resource:”。”
我一直在阅读主要出现在内联脚本上的错误消息,但是我没有任何明确的 onLoads、内联脚本标签等。
list .json:
{
"name": "A reader extension",
"version": "0.0.1",
"manifest_version": 2,
"description": "Desc",
"homepage_url": "homepage.com",
"icons": {
"16": "icons/icon16.png",
"48": "icons/icon48.png",
"128": "icons/icon128.png"
},
"default_locale": "en",
"background": {
"page": "src/bg/background.html",
"persistent": true
},
"browser_action": {
"default_icon": "icons/icon19.png",
"default_title": "browser action",
"default_popup": "src/browser_action/browser_action.html"
},
"permissions": [
"cookies",
"https://www.a-reader.com/api/1/*",
"http://www.a-reader.com/go?*"
]}
后台 Action .js
function list() {
$.getJSON('https://www.a-reader.com/api/current/', function (data) {
var items = [];
$.each(data, function (key, val) {
if (val.idx < val.max_idx) {
var line = "<tr class='listEntry'>" +
"<td> " +
"<a class='listLink' id='ID' data-uri='URI' href='javascript:void(0)'>BANNER</a> " +
"</td> " +
"<td> [UNREAD_ENTRIES] </td>" +
"</tr>";
items.push(line.replace("ID", val.slug).
replace("URI", "http://www.a-reader.com/boilerplate?=" + val.uri).
replace("NAME", val.name).
replace("BANNER", val.banner.
replace("UNREAD_ENTRIES", "" + val.unread;
}
});
$('<table/>', {
'class': 'entry-list',
html: items.join('')
}).appendTo('#mainPopup');
});
}
function newTabForEntry(entryUrl) {
chrome.tabs.create({'url': entryUrl});
}
document.addEventListener('DOMContentLoaded', function () {
list();
document.querySelectorAll('.entryLink', function (entryLinks) {
for (var i = 0, len = entryLinks.length; i < len; i++) {
document.getElementById(i.id).addEventListener('click', function (e) {
console.info(e);
newTabForEntry(e.target.dataset.uri);
});
}
});
});
浏览器 Action .html
<!doctype html>
<html>
<head>
<style type="text/css">
body {
max-height: 450px;
width: 200px;
background-color: #F6F7F4;
overflow: hidden;
}
a:link {
color: #F6F7F4;
text-decoration: none;
font-weight: bold;
}
a:visited {
color: #F6F7F4;
text-decoration: none;
font-weight: bold;
}
a:hover {
color: #F6F7F4;
text-decoration: none;
font-weight: bold;
}
::-webkit-scrollbar {
display: none;
}
#mainPopup {
font-family: Helvetica, Ubuntu, Arial, sans-serif;
}
.listEntry {
color: #F6F7F4;
background-color: #483F36;
}
#banner {
background-color: #483F36;
}
</style>
<script type="text/javascript" src="../../js/jquery/jquery-2.0.0.js"></script>
<script type="text/javascript" src="../../js/browser-action.js"></script>
</head>
<body>
<div id="banner">
<img src="../../icons/reader-logo.png" width="124" height="25"/>
</div>
<div id="mainPopup">
</div>
</body>
</html>
这是否隐含地创建了一个内联脚本,或者我是否以其他方式搞砸了它?
最佳答案
虽然原因有点不清楚,但我确实把事情搞砸了。原来罪魁祸首是“BANNER”。 Chrome 将 javascript:void(0) 调用定义为内联脚本调用。将 href 切换为“#”删除了错误消息。没有打开选项卡的原因是尝试向在 (ajax) 方法 getJSON() 中异步创建的组件添加行为,此时尚未完成。快速移动循环解决了这个问题,现在一切都按预期工作了。
关于javascript - 没有内联脚本,仍然得到 "Refused due to Content Security Policy directive: "script-src 'self' ",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17918149/
在JSON输出中,“步骤”中有一个字段“maneuver”。在此“向左转”,“向右转”,“向左转轻微”等。示例为here 在哪里可以找到“操纵”字段的定义以及可能的值列表?没有相关描述here 提前致
默认情况下,我们如何从Google Direction API建议的替代 route 获得从A点到B点的最短距离路线?默认情况下,它会根据当前交通状况为我们提供最短持续时间的路线。我已经注意到,如果您
我想知道“precompile(r) directive”和“preprocessor directive”是一回事吗?我对前者不熟悉,但只是听说过,并通过这个Google在互联网上找到了一些关于它的
对于我的项目,我目前正在开发自定义表单/输入指令。 例如,我有以下指令: angular.module('myApp').directive("textField", function() {
我用谷歌搜索了一下,但找不到任何详细说明如何制作动态包装内容的 Angular 指令的内容(例如 http://demos.telerik.com/kendo-ui/panelbar/angular
我正在尝试在另一个指令中使用一个指令。具体来说,我有一个模态指令,我想传递一个表单指令,并将充当模态的主体。 我的模态指令: angular.module('Storyboard').dir
我构建了一个模块化形式的小型演示,其中包含单独的输入指令。它还可以预览绑定(bind)到相同 Controller 和范围的表单值。 导致问题的输入指令是嵌入到表单内的输入:
HTML 指令 .directive('authorname', function() { return { restrict: 'E', scope: {
我有可以编译的 Angular 指令 至和 至Hello World! 我怎样才能把greeting在我的 HTML 中标记并将其编译为 print-greeting然后最后显示Hello World
标题中引用的脚注是什么意思?这是 6.10.3p11 的脚注 If there are sequences of preprocessing tokens within the list of arg
因此,电话号码始终是 ltr(从左到右)。 在多语言网站上工作,我需要在方向为 rtl 的文本段落中插入一个电话号码(带有“+”前缀和由“-”分隔的数字)(当然是针对相关语言) 所以我有这样的东西:
我有一个标题元素,我想显示 flex 列,这样我就可以将 .container div 垂直居中。这工作正常。然后我需要 .container 中的元素在 1200px 之间以均匀的间距连续 flex
如何将整个ng-repeat对象传递给指令(或如何将指令的作用域设置为ng-repeat项)? 我是新来的有角度的人,很难解决这个问题。 我有一个 Controller ,可以很好地呈现以下内容:
我需要将“...”放在文本前面,并在填充 div 时仅显示文本的最后一部分。 正常时不执行任何操作 C:\fakepath\996571_1398802860346752_209456547
我需要将“...”放在文本的前面,并且只显示它的最后一部分,当它填充 div 时。 正常的时候什么也不做 C:\fakepath\996571_1398802860346752_209456
我需要一个“粘性”指令,当它位于页面顶部时向元素添加一个 css 类,并且还指示其状态的变化。出于这个原因,我定义了一个范围,如 { onStickyChange: '&' }。现在我想在 angul
我对 ngSwitch 指令有点困惑——它是“属性指令”还是“结构指令”。 属性指令用“方括号”编写,如 [ngStyle]、[ngClass] 等(我们将其写为 [ngSwitch],将其称为“属性
Wi-Fi direct 的 Wiki 规范声称“只有一个 Wi-Fi 设备需要兼容 Wi-Fi Direct 才能建立点对点连接,在彼此之间直接传输数据,大大减少了设置”。但是从 android A
我有一个响应式模板,我正尝试将其与我的 Angularjs 应用程序一起使用。这也是我的第一个 Angular 应用程序,所以我知道我在未来有很多错误和重构。 我已经阅读了足够多的关于 Angular
首先,我这样做的方式可能不正确。但我会解释这个问题: 1) 我正在创建名为 的指令 2) 当点击第一个指令中的按钮时,我试图在运行时动态插入第二个指令 如下: var app = angu
我是一名优秀的程序员,十分优秀!