- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用 Crossrider 创建一个扩展程序,允许用户为他们正在查看的页面添加书签。
为此,我创建了一个按钮弹出窗口,单击该按钮将打开用于管理书签列表的 UI。当用户单击扩展程序的按钮时,我想将正在查看的页面的 URL 传递给弹出窗口,以便我可以将其添加到书签列表中。我的问题是我不知道如何将 URL 传递给弹出窗口。谁能指出我正确的方向?
以下代码片段是代码的简化版本,用于演示我所拥有的内容:
背景.js:
appAPI.ready(function($) {
appAPI.browserAction.setResourceIcon('images/icon.png');
appAPI.browserAction.setPopup({
resourcePath:'html/popup.html',
height: 300,
width: 300
});
});
popup.html:
<!DOCTYPE html>
<html>
<head>
<!-- This meta tag is relevant only for IE -->
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<script type="text/javascript">
function crossriderMain($) {
}
</script>
</head>
<body>
<h1>Bookmark List</h1>
<ul>
<li>1: http://example.com/1.html</html>
<li>2: http://example.com/2.html</html>
</ul>
</body>
</html>
最佳答案
这里的问题是scope .弹出窗口运行的范围无权访问正在查看的页面的 URL;因此,要获取弹出范围的 URL,弹出代码必须通过 messaging 从另一个范围请求信息。 .
执行此操作的最简单方法是让弹出窗口向事件选项卡 (Extension Page Scope) 发送一条消息,请求其显示的页面的 URL。您可以按如下方式实现此目的,我将让您完成将书签添加到列表的代码。
extension.js:
appAPI.ready(function($) {
// Listener to receive messages
appAPI.message.addListener(function(msg) {
// check if message is requesting page url and respond accordingly
if (msg.type==='get-url')
appAPI.message.toPopup({
url:encodeURIComponent(window.location.href);
});
});
// The rest of your code
...
});
popup.html:
...
function crossriderMain($) {
// Listener to receive messages
appAPI.message.addListener(function(msg) {
// check if message contains a url and call function to process the url
if (msg.url) addBookmark(msg.url);
});
// Request url from active tab
appAPI.message.toActiveTab({
type: 'get-url';
});
function addBookmark(url) {
// Add your code that handles adding the url to the bookmark list
}
}
...
[披露:我是 Crossrider 员工]
关于javascript - Crossrider 扩展平台,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25102601/
我必须在 crossrider 浏览器扩展的扩展 .js 代码中使用浏览器的 localStorage 变量 如何访问 crossrider 扩展代码中的 localStorage 变量就像我想使用
如何在 Crossrider 扩展中编写弹出 HTML? 什么触发它以及如何添加图像,例如,如果您想在弹出窗口中显示带有一些文本的 Logo ,是否保留 extension.js 因为您将编写弹出 H
我已经开始使用 Crossrider 编写扩展程序,并且非常喜欢它。但我读过一些关于他们是浏览器劫持者的负面信息 - 特别是 search.crossrider.com 我不确定 search.cro
我是 Crossrider 的新手,我希望能够根据用户与页面的交互触发事件。 例如,当用户将鼠标悬停在 html 输入元素上时播放声音: extension.js appAPI.ready(funct
我正在使用 Crossrider 创建一个扩展程序,允许用户为他们正在查看的页面添加书签。 为此,我创建了一个按钮弹出窗口,单击该按钮将打开用于管理书签列表的 UI。当用户单击扩展程序的按钮时,我想将
我们正在使用 CrossRider 开发 Internet Explorer 的扩展。我们有一个从 http://jsons.[part_of_link_suppressed].com.s3.amaz
这里是crossrider toolbar extension demo的链接 click here 这是工具栏的演示,显示了整个网站。 那么解决方案是什么? 我试着改变它的CSS $('#xr-cr
我已经开发了 crossrider 扩展程序,但是当我尝试在 Internet Explorer(版本 8)中安装该扩展程序时,它会发出病毒警报并且防病毒软件不允许安装它。我还尝试在 crossrid
crossrider 侧面板只是一个 iframe(您可以使用 js 注入(inject)的 html,但我有兴趣使用 iframe 来减少对页面其余部分的干扰)。我在浏览器扩展程序和 iframe
我在 Crossrider 中有一个弹出窗口,其中有一个复选框。它看起来像这样: popup.html Enable Something 现在
我正在使用 CrossRider api 来获取打开的选项卡,使用那里的 API 我可以获取书签中链接的标题,但是使用那里的 api 我无法使用如何获取打开的选项卡中的网址标题,我只能获取 URL。
我们正在使用 CrossRider 开发 Internet Explorer 的扩展。我在 Debug模式下测试了我们的扩展,我更改了本地文件路径的基本 URL - 但保存新的基本 URL 后文件没有
我们正在使用 CrossRider 开发 Internet Explorer 的扩展。我在暂存模式下测试了我们的扩展,并且在后台和 extension.js 的函数 appAPI.ready 中出现了
我正在尝试使用 Crossrider 构建一些浏览器扩展。在页面加载之前,在呈现任何 DOM 元素之前,我需要一些代码来执行。这在 Crossrider 上可行吗? 我试过使用 appAPI.dom.
我使用 Crossrider 构建了我的扩展程序目前我所有的代码都在 extension.js 文件中。但是,在这个单一文件中维护它变得相当长并且变得更加困难。有没有办法将我的代码拆分成单独的文件并在
我的 Crossrider 插件使用 setPopup() 函数在单击 browserAction 图标时弹出窗口。 问题是,当我点击图标时,弹出窗口又长又细,无法使用。 这是它的屏幕截图......
我们正在使用 CrossRider 开发 Internet Explorer 的扩展。我们的扩展有代码向后台发送消息,后台发送回复并调用回调函数。这在我的装有 Internet Explorer 11
我需要使用扩展程序中的时间来计算浏览器。如果我可以检查浏览器是否处于事件状态,那么很容易计算时间。这在crossrider中怎么可能? var focused = true; window.onfoc
我真的尝试过搜索,所以如果这已经存在但我只是无法找到它,我事先表示歉意。 我正在尝试使用 crossrider 在弹出窗口中创建一个表单,并通过单击按钮来评估响应,然后将值返回给用户。我可以通过在 C
我正在使用 crossrider 为我的网站制作跨浏览器扩展。 这是我的页面代码(extension.js): appAPI.ready(function($) { //alert("Hello W
我是一名优秀的程序员,十分优秀!