标签: bookmarklet

Bookmarklet:将隐藏的iframe附加到页面并加载网址

我有一个用于重置路由器的书签.我只需要访问并让页面完成加载,然后我的路由器开始重置.

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.这甚至可能吗?

我愿意就如何做到这一点提出更好的建议.

html javascript iframe router bookmarklet

7
推荐指数
1
解决办法
2万
查看次数

更轻松的书签开发

以下是我开发书签的方法:我编写一个javascript函数,将其传递给Bookmarklet Builder制作书签,将书签添加到我的浏览器,加载我的测试网页,测试书签,然后一些东西不起作用,所以我试着找出什么是错的,并相应地改变我的javascript函数,再次开始繁琐的循环.

如何让这个循环不那么繁琐?

javascript bookmarklet

6
推荐指数
2
解决办法
2833
查看次数

可以从书签中进行ajax调用吗?

我计划创建一个书签,用户将使用该书签在网站上分享内容(细菌网址和页面标题),例如mysite.com.所以这就是我现在所遵循的:

  1. Bookmarklet调用external.js,它基本上包含所有逻辑
  2. external.js可以a)创建一个iframe或b)打开一个弹出窗口并传入共享的url信息

现在我的问题是......是否有可能的第三种方法,外部js文件可以通过mysite.com的ajax加载所有内容.或者由于bookmarklet将共享来自其他站点的内容,因此由于相同的源策略而无法工作.这可以工作的唯一方法是从iframe或弹出窗口中调用ajax?

使用弹出窗口与iframe方法有偏好还是缺点?

javascript ajax bookmarklet

6
推荐指数
1
解决办法
1691
查看次数

通过书签在 Chrome 中打开多个标签

我正在制作供我个人使用的书签,其中一些应该一次打开 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)

javascript google-chrome bookmarklet

6
推荐指数
1
解决办法
5219
查看次数

https页面上的书签

我正在尝试制作一个在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)

javascript https bookmarklet

6
推荐指数
1
解决办法
3403
查看次数

通过Bookmarklet发布到Wayback机器

我正在尝试使用"保存页面功能"来创建一个书签,允许用户通过单击将页面推送到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 bookmarklet cors

6
推荐指数
1
解决办法
860
查看次数

Firefox中带有CSP的站点上的Javascript小书签

我有一个简单的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问题,以及有关CSPgithub博客文章 …

javascript firefox bookmarklet content-security-policy

6
推荐指数
1
解决办法
1247
查看次数

如何方便地分发我的小书签?

我刚刚写了我的第一个书签。它是简单的 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 bookmarklet quora

6
推荐指数
0
解决办法
2133
查看次数

将 Chrome 扩展程序转换为书签

关于如何将书签(或任何 javascript)转换为 Chrome 扩展程序的教程有无数,但我需要反之亦然的过程。我有一些扩展,我想将它们作为书签。这背后的想法:我不想要这些扩展,因为它们不断地侵蚀我的 RAM。相反,如果需要,我只想按下一个按钮并运行一个书签。

一个例子是这个扩展,它只是在浏览器中打开/关闭javascript。此扩展仅包含一个 javascript 文件(不包括图标、manifest.json 和签名文件 _metadata/verified_contents.json)。

我尝试将此 javascript 用作书签,但这样做并不能帮助我成功 - javascript 没有切换。看来,我错过了一些实质性的东西,但我不知道是什么。有人可以指出将 Chrome 扩展程序转换为书签的正确程序吗?

javascript google-chrome bookmarklet google-chrome-extension

6
推荐指数
1
解决办法
885
查看次数

javascript 书签在 chrome 的新标签页中不起作用

我有这个 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 中处理新标签页有关?

javascript bookmarklet

6
推荐指数
1
解决办法
2951
查看次数