簡體   English   中英

如何調用 function 與 Href 到 HTML 上的其他頁面

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM