繁体   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