如何在javascript bookmarklet上替换encodedURLcomponent
因此,基本上,当我运行这个函数时,如果我在url末尾附加了如何在javascript bookmarklet上替换encodedURLcomponent,javascript,bookmarklet,Javascript,Bookmarklet,因此,基本上,当我运行这个函数时,如果我在url末尾附加了?element=value&element1=value2,我可以在网站的element字段中输入数据 但是如果我添加一个空格,例如:element=value+value2。空间在字段上进行了转置,而不是将其标识为空间 我尝试过使用%20将其转换为+,并且我尝试过使用。在许多地方替换,但它根本不起作用 javascript: function getUrlVars() { var vars = [], hash; var ha
?element=value&element1=value2
,我可以在网站的element字段中输入数据
但是如果我添加一个空格,例如:element=value+value2
。空间在字段上进行了转置,而不是将其标识为空间
我尝试过使用%20
将其转换为+,并且我尝试过使用。在许多地方替换,但它根本不起作用
javascript: function getUrlVars() {
var vars = [],
hash;
var hashes = window.location.href.slice(window.location.href.indexOf('?') + 1).split('&');
for (var i = 0; i < hashes.length; i++) {
hash = hashes[i].split('=');
vars.push(hash[0]);
vars[hash[0]] = hash[1];
}
return vars;
}
function ParamsIntoForms(get) {
for (var i = 0; i < get.length; i++) {
if (document.getElementsByName(get[i]).length != 0) {
document.getElementsByName(get[i])[0].value = decodeURIComponent(get[get[i]]);
}
}
return false;
}
var get = getUrlVars();
ParamsIntoForms(get);
javascript:function-getUrlVars(){
var vars=[],
搞砸
var hashes=window.location.href.slice(window.location.href.indexOf('?')+1).split('&');
for(var i=0;i
尝试以下方法:
function getUrlVars () {
const searchString = window.location.search.substr(1);
const paramPairs = searchString.split('&');
const keyValues = {};
paramPairs.forEach(paramPair => {
const pair = paramPair.split('=');
// You need to replace the + signs you are using as spaces with %20, which can be decoded properly.
keyValues[decodeURIComponent(pair[0])] = decodeURIComponent(pair[1].replace(/\+/g, '%20'));
})
return keyValues;
}
function praseIntoForms(keyValues) {
Object.keys(keyValues).forEach(key => {
if (document.getElementsByName(key).length != 0) {
// Only replaces the first element of this name, is this what you want?
document.getElementsByName(key)[0].value = keyValues[key];
}
});
}
const urlValues = getUrlVars();
praseIntoForms(urlValues);
虽然我真的不明白你为什么要这么做。不起作用。让我举个例子。假设你有一个url。www.youtube.com是的,所以如果你检查网页上的元素和搜索栏的名称,名称是“search\u bar”或任何正确的名称,那么如果你这样做www.youtube.com?search\u bar=Hello,然后运行bookmarklet,它会自动填充字段。现在,假设您想添加一个空间,url将如下所示:www.youtube.com?search_bar=Hello+world,但在搜索栏中,它看起来像Hello+world,而不是Hello-world。你自己试试看。复制代码并将其标记为书签,然后将代码放在url所在的位置