[英]How to call a function with href to other page on HTML
因此,我有3個鏈接:1、2和3,它們都是Z34D1FB2E514B8576FAB1A75A89A6BZ到同一頁,每個頁面都有ZC425268E683851AB5074C174C17A94F14F14F14F14.141F15.1.RY11.FING MONIN ZC1C1C1C1C1C1C1C1C1C141F。主頁,到 go 到 123.html 並根據他們單擊的按鈕運行 1() 或 2()。
我試過這個:
<li><a href="123.html?javascript:1();"><span>Link1</span></a></li>
但它根本沒有運行 function。 我想讓它們都像這樣:
<li><a href="123.html?javascript:1();"><span>Link1</span></a></li>
<li><a href="123.html?javascript:2();"><span>Link2</span></a></li>
<li><a href="123.html?javascript:3();"><span>Link3</span></a></li>
您不能將 javascript 傳遞到這樣的頁面,除非您要訪問的頁面正在 url 中查找 javascript 查詢字符串。
最好發送一個查詢字符串變量,例如?action=Link1
然后讓一些 javascript 檢查“動作”。 然后,您可以根據操作的內容運行 function。
通過查看window.location
變量,您可以找到很多可以為您執行此操作的函數
這不是做事的方式。 您可以做的是在鏈接中添加一個參數,例如
?function:1
。
然后,您可以在123.html
頁面上提取參數,如下所示:
var url_string = window.location.href
var url = new URL(url_string)
var c = url.searchParams.get("function")
c
的值將是 1、2 或 3。有了它,您可以進行 switch 語句和 select 執行 function:
switch(c) {
case 1:
function1()
break
}
我不建議這樣工作,但如果你想這樣做,你可以在這里 go。
基於你不能(第一個答案)的類似問題,但擴展這個答案你可以做這樣的事情
a.html
<li><a href="b.html#fb('a', 'b');"><span>Link1</span></a></li>
b.html
<script>
// get hash from url
var hash = window.location.hash;
// clean
hash = hash.replace('#', '');
hash = hash.replace(';', '');
hash = hash.replace(new RegExp("%20", "g"), "");
const fb = (a, b) => {
console.log(a);
console.log(b);
}
// Option 1:
/**
* parse all parameters from string to an array
*/
const parseParams = (str) => {
let params = str.split(/[/(/)]/)[1].split(',');
for (i=0; i < params.length; i++) {
params[i] = params[i].replace(new RegExp("'", "g"), "");
}
return params;
}
// check for existing function - parse only the function name
switch(hash.substring(0, hash.indexOf("("))) {
case "fb":
var params = parseParams(hash);
fb(...params);
break;
default:
break
}
// Option 2 (easy solution but try to avoid this):
eval(hash);
</script>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.