我正在尝试创建一个Chrome扩展程序,它可以替代Delicious书签.我知道已经有了扩展功能,但扩展的问题在于,在为网站添加书签后,弹出窗口保持打开状态(与使用小书签相反,弹出窗口在提交表单后自动关闭.我重新创建了扩展并遇到了同样的问题.
这是我的代码:
manifest.json的:
{
"name": "Delicious",
"version": "1.0",
"description": "Bookmark a site on Delicious",
"background_page": "background.html",
"permissions": [
"tabs"
],
"browser_action": {
"default_icon": "delicious.png"
},
"content_scripts": [
{
"matches": ["http://www.delicious.com/save*"],
"js": ["contentscript.js"]
}
]
}
Run Code Online (Sandbox Code Playgroud)
background.html:
<html><script>
chrome.browserAction.onClicked.addListener(function(tab) {
chrome.tabs.getSelected(null, function(tab) {
w = window.open('http://delicious.com/save?url='+
encodeURIComponent(tab.url)+
'&title='+encodeURIComponent(tab.title)+
'&v=5&noui=1&jump=close',
'deliciousuiv5',
'location=yes,links=no,scrollbars=no,toolbar=no,width=550,height=550');
});
});
</script></html>
Run Code Online (Sandbox Code Playgroud)
contentscript.js:
if (document.URL == 'http://www.delicious.com/save')
{
alert('closing...');
self.close();
alert('should have closed by now');
}
Run Code Online (Sandbox Code Playgroud)
当我点击美味按钮时,弹出窗口很好,我可以保存书签但是在我点击"保存"后,弹出窗口没有关闭.两个警报都出现了,但self.close()
似乎没有做任何事情.当我删除contentcript.js中的URL检查时,弹出窗口正常显示,第一个警报立即触发,然后弹出窗口自行关闭(应该如此).
为什么这不起作用?Chrome似乎没有阻止我做self.close().美味做点什么吗?还有别的吗?
如果您需要,文件就在这里:[链接已删除,因为drop.io已停业]
javascript google-chrome delicious-api google-chrome-extension
我正在尝试创建一个用于将del.icio.us书签发布到单独帐户的书签.
我从命令行测试了它,如:
wget -O - --no-check-certificate \
"https://seconduser:thepassword@api.del.icio.us/v1/posts/add?url=http://seet.dk&description=test"
Run Code Online (Sandbox Code Playgroud)
这非常有效.
然后我想在我的Firefox中创建一个bookmarklet.我用Google搜索并找到了点点滴滴,结果是:
javascript:void(
open('https://seconduser:password@api.del.icio.us/v1/posts/add?url='
+encodeURIComponent(location.href)
+'&description='+encodeURIComponent(document.title),
'delicious','toolbar=no,width=500,height=250'
)
);
Run Code Online (Sandbox Code Playgroud)
但所有这一切都是我从del.icio.us得到的:
<?xml version="1.0" standalone="yes"?>
<result code="access denied" />
<!-- fe04.api.del.ac4.yahoo.net uncompressed/chunked Thu Aug 7 02:02:54 PDT 2008 -->
Run Code Online (Sandbox Code Playgroud)
如果我然后转到地址栏并按Enter键,它将变为:
<?xml version='1.0' standalone='yes'?>
<result code="done" />
<!-- fe02.api.del.ac4.yahoo.net uncompressed/chunked Thu Aug 7 02:07:45 PDT 2008 -->
Run Code Online (Sandbox Code Playgroud)
任何想法如何让它直接从书签工作?
我正在寻找一种方法将多个服务(PicasaWeb,Yahoo Pipes,Delicious书签等)的小部件放在我在Plone(目前为3.2.1)上的社区网站上.我正在寻找一种允许一组用户使用危险的html标签的方法.
我看到了一些方法,但我不知道如何实现这些方法.一个是改变编辑者拥有的页面的safe_html(1).另一种方法是在某些子树上允许这些标记(2).而另一个发现相当于"静态文本portlet"将在中间面板(3)中显示.然后我们可以使用一些复合产品(我偶然发现Collage和CMFContentPanels),将不安全的内容包含在其他网站上.
我的网站已经被广告机器人所累,所以我不想一起删除过滤.我没有一种简单(没有误报)方式来检查哪些用户是机器人,因此现在部署验证码也无济于事.
问题是:如何实施任何这些解决方案?
(我已经在没有答案的plone邮件列表上问过了,所以我想我会在这里再试一次.)
我正在开发一个简单的链接共享扩展(插板,可读性,美味等),并且有一个关于如何正确处理上下文菜单项的问题.在我的非持久性背景页面中,我调用chrome.contextMenus.create
并chrome.contextMenus.onClicked.addListener
设置/响应上下文菜单.
上下文菜单条目按预期工作.但是后台页面显示以下错误(在它开始之后和我使用该条目之前):
contextMenus.create: Cannot create item with duplicate id id_share_link at chrome-extension://.../share.js:52:30 lastError:29 set
Run Code Online (Sandbox Code Playgroud)
这让我意识到,我绝不会删除项目或听众.对javascript和扩展知之甚少,我想知道我是否正确地做了一切.我假设这个顶级代码将在每次调用后台页面时重新执行.因此,对create和addListener进行冗余调用(因此我看到记录的错误).
我显然无法进行清理以响应暂停,因为这些调用需要存在才能唤醒后台脚本.
我应该以不同方式处理事情吗?
html javascript google-chrome delicious-api google-chrome-extension