我有一个用于重置路由器的书签.我只需要访问并让页面完成加载,然后我的路由器开始重置.
javascript:(function(){w=window.open("http://192.168.0.1/goform/formReboot","","width=1,height=1");self.focus();window.onload=w.close();})();
Run Code Online (Sandbox Code Playgroud)
但它会在弹出窗口中打开.
我的新想法是使用javascript bookmaklet动态地将隐藏的iframe附加到我正在使用的页面,然后在隐藏的iframe中打开url.这甚至可能吗?
我愿意就如何做到这一点提出更好的建议.
以下是我开发书签的方法:我编写一个javascript函数,将其传递给Bookmarklet Builder制作书签,将书签添加到我的浏览器,加载我的测试网页,测试书签,然后一些东西不起作用,所以我试着找出什么是错的,并相应地改变我的javascript函数,再次开始繁琐的循环.
如何让这个循环不那么繁琐?
我计划创建一个书签,用户将使用该书签在网站上分享内容(细菌网址和页面标题),例如mysite.com.所以这就是我现在所遵循的:
现在我的问题是......是否有可能的第三种方法,外部js文件可以通过mysite.com的ajax加载所有内容.或者由于bookmarklet将共享来自其他站点的内容,因此由于相同的源策略而无法工作.这可以工作的唯一方法是从iframe或弹出窗口中调用ajax?
使用弹出窗口与iframe方法有偏好还是缺点?
我正在制作供我个人使用的书签,其中一些应该一次打开 2-3 个标签。但是目前 Chrome 不允许一键打开多个选项卡,阻止window.open我尝试执行的第二个、第三个和其余的s。
我明白,这是关于安全性和避免永恒循环的事情,但我只需要在一次迭代中打开窗口。我想让 Chrome 确定,一切都会好起来并停止烦人的阻止,因为在每个网站上允许弹出窗口的额外点击,虽然它们的数量不受限制,但我的书签根本没有那么有用。
已经试过这个:
setTimeout(function(){window.open(url1)}, 500);
setTimeout(function(){window.open(url2)}, 500);
Run Code Online (Sandbox Code Playgroud) 我正在尝试制作一个在youtube和其他视频网站上使用的书签,以便轻松地从视频中获取信息并将其存储在其他地方.
从今天开始,显然我不能再这样做,因为youtube强迫自己在https连接上,而且从我在chrome的控制台窗口上读到的内容,bookmarklet不会在https页面上运行.有解决方法吗?
这是编辑过的代码:
javascript:(function(){var jsCode=document.createElement('script');jsCode.setAttribute('src','http://[mysite]/b/enter.php?i=userid&r='+Math.random());document.body.appendChild(jsCode);}());
Run Code Online (Sandbox Code Playgroud) 我正在尝试使用"保存页面功能"来创建一个书签,允许用户通过单击将页面推送到Internet存档.
从我收集到的,如果我发布到
http://web.archive.org/save/fullURI
Run Code Online (Sandbox Code Playgroud)
它将保存页面fullURI(即fullURI=http://www.google.com所有斜杠)
所以我编写了以下书签(为了清晰起见添加了空白区域并javascript:删除了强制语法高亮显示)
(function(){
var u='http:\/\/web.archive.org\/save\/'+encodeURI(window.location.href);
var w = window.open('', '');
w.document.write('<script>
var u = \'' + u +'\';
var x = new XMLHttpRequest();
x.open(\'POST\',u,true);
x.send();
<\/script>')})();
Run Code Online (Sandbox Code Playgroud)
小提琴这里.
所以一切都在游泳,打开一个新的页面,尝试一个帖子,并繁荣,CORS错误(奇怪的是来自父页面,而不是新窗口).
有趣的是,我还发现,如果我打开一个新窗口,并粘贴URI,它可以工作,但如果我这样做window.open(URI),请说试试POST.
所以在这一点上我对创意持开放态度.有一个很好的,跨浏览器的书签解决方案吗?我是否忽视了一些简单的尝试重新发明轮子的事情?
当我尝试粘贴URI时,我在Chrome 30上.
我有一个简单的Javascript小书签,将其放在一起即可针对外部工具运行适当的GitHub存储库的内容:
javascript:(function(){
var isApex = false;
var sourceLangs = document.getElementsByClassName('lang');
for (var i = 0; i < sourceLangs.length; ++i) {
var l = sourceLangs[i];
if(l.innerHTML == 'Apex') {
isApex = true;
// alert('This is an Apex repo');
}
}
if(location.hostname != 'github.com' || isApex == false) {
alert('This is not a GitHub Apex repository!');
}
else {
window.open('https://githubsfdeploy.herokuapp.com/app/githubdeploy'+location.pathname);
}
})();
Run Code Online (Sandbox Code Playgroud)
当我在Chrome或IE中运行它(通过Daring Fireball的JS小书签生成器运行它后,它可以正常工作。在Firefox中,它会生成内容安全策略错误:
[15:33:19.318] Content Security Policy: Directive inline script base restriction violated @ https://github.com/Groundwire/Campaign-Combiner
Run Code Online (Sandbox Code Playgroud)
我已经阅读了有关这个主题的SE问题,以及有关CSP的github博客文章 …
我刚刚写了我的第一个书签。它是简单的 js 代码,它获取当前页面的 URL 并执行 POST 请求以将其提交到另一个页面。
问题是我需要在不允许 HTML 的博客平台 (quora.com) 上共享此内容。因此,我需要在另一个网站上发布指向我的书签的链接,并提供指向该书签的链接。我希望能够提供一个链接,人们可以将其拖动到书签栏。
这是书签代码。
javascript:(function() {
var msg = window.jQuery.ajax({url:'https://www.quora.com/api/logged_in_user',async:false,type:'GET'});
var username = undefined;
if (msg) {
username = window.jQuery.parseJSON(msg.responseText.replace('while(1);',''));
window.jQuery.post('https://my-website',
{'answer_1':window.location.href,'submitter':username.name});
alert (username.name + ' nominates ' + window.location.href);
}})();
Run Code Online (Sandbox Code Playgroud) 关于如何将书签(或任何 javascript)转换为 Chrome 扩展程序的教程有无数,但我需要反之亦然的过程。我有一些扩展,我想将它们作为书签。这背后的想法:我不想要这些扩展,因为它们不断地侵蚀我的 RAM。相反,如果需要,我只想按下一个按钮并运行一个书签。
一个例子是这个扩展,它只是在浏览器中打开/关闭javascript。此扩展仅包含一个 javascript 文件(不包括图标、manifest.json 和签名文件 _metadata/verified_contents.json)。
我尝试将此 javascript 用作书签,但这样做并不能帮助我成功 - javascript 没有切换。看来,我错过了一些实质性的东西,但我不知道是什么。有人可以指出将 Chrome 扩展程序转换为书签的正确程序吗?
javascript google-chrome bookmarklet google-chrome-extension
我有这个 javascript bookmarklet 这将提示的值附加到 www.oracle.com 并在选项卡中打开该 url。
javascript:window.location.href='http://www.oracle.com/'+prompt("Please enter your input:", "exadata");
Run Code Online (Sandbox Code Playgroud)
在 Firefox 中,这可以正常工作。如果我在某个网站上有一些打开的选项卡,请单击此书签,打开预期的站点。oracle.com 附加了值。当我在新选项卡中并按预期打开 oracle url 时,这也有效。
但是在 chrome 中,如果我在选项卡中加载了一些站点并单击此书签,则此方法可以正常工作。但是如果我在新标签页,点击这个书签什么也不做。它甚至不显示提示框。
我在这里缺少什么?是否与如何在 Firefox 和 chrome 中处理新标签页有关?
bookmarklet ×10
javascript ×10
ajax ×1
cors ×1
firefox ×1
html ×1
https ×1
iframe ×1
quora ×1
router ×1