我如何为 Google Chrome 编写一个书签,它将获取选定的文本,将其附加到预定的 URL,然后转到修改后的 URL。
例如,假设基本 URL 是http://www.mybaseurl.com/。(此基本 URL 硬编码在小书签代码中。)现在,假设我在随机网页上选择文本dog。然后,如果我在选择该文本时单击小书签,我希望小书签使浏览器访问以下 URL:http://www.mybaseurl.com/dog。
如何才能做到这一点?
我想创建一个小书签,可以将其放在浏览器的书签工具栏上,单击该小书签时,会插入固定的预定义文本(在我的用例中,耸肩:\xc2\xaf\\_(\xe3\x83\x84) _/\xc2\xaf )在当前光标位置(假设光标位于可编辑输入字段或文本区域中)。然而,我是 JavaScript 的初学者,不知道如何开始这样做。有什么帮助吗?如果我能找到正确方向的指针,我可能就能从那里找出答案。谢谢!
\n我想制作一个 Chrome Bookmarklet,它可以打开一个带有特定操作的新标签页。
更确切地说,我希望"https://www.blablabla.com/search="在书签内有一个固定的 URL ,当我按下它时,我希望出现一个带有输入字段的弹出窗口。
当我在输入字段中输入内容并按 Enter 或 OK/submit 时,它应该“运行”整个链接以及我的查询。
例如,我按下书签,出现输入字段并输入单词“test”(不带引号)。
当我按下提交查询时,将打开一个新选项卡,地址https://www.blablabla.com/search=test为 URL。
我怎么做?
我试过使用提示功能,但我无法让它工作......
我的问题有点类似于在新选项卡中打开新网页后如何在书签中获取 JavaScript 代码以执行?.
我正在尝试创建一个书签,它将在网页上的文本区域中插入一些文本(网页供内部使用,因此没有链接的意义)。
这是我尝试过的 JavaScript 代码示例:
(function(){document.getElementById("textareaID").value="Some text";})();
Run Code Online (Sandbox Code Playgroud)
我想指出的是,我尝试了不同的元素选择器(byClass、查询...)和不同的属性(甚至 tabindex)以获得相同的结果。还在 Chrome 和 IE11 中进行了尝试。
因此,出于某种奇怪的原因,当我从控制台(或作为片段)运行它时,我的 JavaScript 会运行,但当我尝试从书签菜单运行它时,我收到错误“无法设置 null 的属性‘值’”。
我尝试自己创建一个书签
javascript:(function(){document.getElementById("textareaID").value="Some text";})();
Run Code Online (Sandbox Code Playgroud)
并尝试使用在线书签创建器对特殊字符进行编码
javascript:(function(){document.getElementById(%22textareaID%22).value=%22Some%20text%22;})();
Run Code Online (Sandbox Code Playgroud)
但没有运气。
小书签肯定可以在页面上使用(尝试使用警报“Hello”),但我似乎在“捕获”元素时遇到问题。我还注意到某些元素的 ID 有时会发生变化(但不确定为什么),但我总是检查以确保我尝试使用的 ID 存在,或者我使用一些固定值,如 tabindex。此外,正如我所说,它在从控制台运行时有效,所以我不可能以某种方式搞砸它......或者我可以吗?
我正在制作一个书签,并且认为我会抛出一个挑战:如何从尽可能少的字符中的链接注入外部javascript文件.
这是我能想到的最短的:
javascript:(function(d){d.body.appendChild(d.createElement('script')).src='URL'})(document)
Run Code Online (Sandbox Code Playgroud)
这是没有URL的88个字符.
Stack Overflow javascript大师可以做得更好吗?我将接受最少字符的工作答案,所以戴上你的思维帽!
(有一点:书签必须适用于所有主流浏览器.这是一个聪明的解决方案,但不适用于所有主流浏览器,因为它返回一个值.)
有一个令人讨厌的网站,通过使用<div onclick=>而不是使用箔片试图"在新标签中打开" <a href=>.我已经使用jQuery编写了一个bookmarklet,它创建了一个包装器<a>标签并将其插入<div>到其内容周围.
如何删除原始的onclick处理程序?
我在书签中使用JavaScript来填充网站上的表单元素:
javascript:var f = document.forms[0];
f.getElementsByTagName('input')[0].value = 'myname';
f.getElementsByTagName('input')[1].value = 'mypassword';
f.getElementsByTagName('input')[2].click
Run Code Online (Sandbox Code Playgroud)
这有效.然而,我想创建的是一个bookmarklet,以便它打开目标页面,并在那里填充值; 然而,似乎加载了页面,其他JavaScript代码不会被执行.所以,以下不起作用.
javascript:window.location("mywebsite");var f = document.forms[0];
f.getElementsByTagName('input')[0].value = 'myname';
f.getElementsByTagName('input')[1].value = 'mypassword';
f.getElementsByTagName('input')[2].click;
Run Code Online (Sandbox Code Playgroud)
我还尝试使用setTimeout来延迟代码的执行,但这不起作用.
javascript:var f = document.forms[0];setTimeout("f.getElementsByTagName('input')[0].value = 'myname';f.getElementsByTagName('input')[1].value = 'mypassword';f.getElementsByTagName('input')[2].click;",1000);
Run Code Online (Sandbox Code Playgroud)
一旦我知道目标页面已满载,我该如何加载我的脚本?
我正在创建一个JavaScript书签,动态更新标题栏,但它不显示IE中的更改(我已经尝试过IE7和IE8).这是一个演示我的问题的简化示例:
javascript:document.title='new title';alert(document.title);
Run Code Online (Sandbox Code Playgroud)
请注意,该值在警报中更新,但不在标题栏或选项卡上更新.它在Chrome中运行正常.
我一直在寻找一种方法,使用书签在页面的右上角显示一个简单的红色div,但似乎无法在网上找到任何教程.任何人都可以快速了解我如何创建这样的书签?
书签是否可以实现以下功能?
我有这个但它在firefox上无声地失败了.我没有尝试过其他浏览器:
javascript:(
function()
{
key = encodeURI('include_docs'); value = encodeURI('true');
var kvp = document.location.search.substr(1).split('&');
var i=kvp.length; var x; while(i--)
{
x = kvp[i].split('=');
if (x[0]==key)
{
x[1] = value;
kvp[i] = x.join('=');
break;
}
}
if(i<0) {kvp[kvp.length] = [key,value].join('=');}
//this will reload the page, it's likely better to store this until finished
document.location.search = kvp.join('&');
}()
);
Run Code Online (Sandbox Code Playgroud) bookmarklet ×10
javascript ×9
jquery ×2
code-golf ×1
form-fields ×1
html ×1
minimize ×1
prompt ×1
settimeout ×1