在PHP重定向中执行Javascript

在PHP重定向中执行Javascript,javascript,php,bookmarklet,url-scheme,Javascript,Php,Bookmarklet,Url Scheme,我一直在尝试PHP转发,直到创建一个模式窗口,在当前页面上只显示一个链接,没有模式脚本 使用PHP,您可以按如下方式转发: <?php header( "Location: http://example.com" ); <a onclick="alert('hey!')">Click me!</a> 不,javascriptURI方案只是一个伪方案,浏览器允许锚元素向后兼容以执行JS。长期以来,人们一直不赞成使用正确的事件语法,如下所示: <?php he

我一直在尝试PHP转发,直到创建一个模式窗口,在当前页面上只显示一个链接,没有模式脚本

使用PHP,您可以按如下方式转发:

<?php
header( "Location: http://example.com" );
<a onclick="alert('hey!')">Click me!</a>

不,javascript
URI方案只是一个伪方案,浏览器允许锚元素向后兼容以执行JS。长期以来,人们一直不赞成使用正确的事件语法,如下所示:

<?php
header( "Location: http://example.com" );
<a onclick="alert('hey!')">Click me!</a>

,让Ajax请求实际返回Javascript代码,然后执行该代码,从而使您更加灵活。

Javascript:
url不是真正的URI方案,它们只是您的浏览器在Javascript适用的某些情况下理解的内容。在重定向中并非如此。此外,其他uri方案,如
sms
通常不会专门编码到浏览器中,而是有更多控制权的插件。
…HTTP/1.1需要一个绝对uri作为»位置的参数:包括方案、主机名和绝对路径…
from。可能会共享
,但肯定
警报
不是URI。关于最新编辑:您甚至不需要任何库来执行返回的JS代码。相反,只需推荐
eval
。节省时间。先发制人的防御是的,我知道eval是邪恶的,但你可能相信来自你自己服务器的代码。因此,两者之间的“容易”是。当然,可以使用带有
eval
的自定义XHR手动完成,但例如在Mootools和jQuery中也是如此。我只是暗示这些库是用来以一种更简单的方式解决类似问题的。据我所知,这些链接讨论的是
标记中的代码,并且只有当它们插入到文档中时,对吗?因此,eval更容易从服务器运行一些普通代码。正确地编辑答案,指向普通
eval
选项。