我可以通过链接回复javascript而不是HTML吗?

时间:2015-01-16 11:56:58

标签: javascript php html href

我有很多HTML网页包含指向相同网址的链接,如下所示:

<a href="http://example.com/page.php?params=1">Link</a>

问题是:我可以返回javascript响应,而不是可以通过点击链接执行的纯HTML吗?

例如,我在page.php中尝试了这个:

header("Location: javascript:alert(1)", true, 302);

但它不起作用。如果我发送包含所需javascript的HTML页面,则浏览器会打开一个新页面或用包含JS的空白页面替换当前页面。

有没有其他方法可以在不更改链接的情况下执行此操作?由于安全限制,似乎无法实现此目的。

1 个答案:

答案 0 :(得分:1)

不,您无法从服务器端调用JavaScript。但是,您可以加载JavaScript以调用服务器并检索数据。

考虑到这一点,您可以调用从有效负载所在的服务器检索JSON或XML,该服务器可以由已在客户端定义的JavaScript函数提取。

// note: in this example I use jQuery because their AJAX API is terrific
$.ajax({
    url: "http://example.com/page.php?params=1"
})
.done(function( data ) {
    // data is our payload
    doSomethingWithPayload(data);
});

这种方式doSomethingWithPayload已在客户端定义,并在收到有效负载时被调用。