我一直在尝试使用PHP转发来制作一个模态窗口,该窗口只显示链接而当前页面上没有模态脚本。
使用PHP,您可以这样转发:
<?php
header( "Location: http://example.com" );
您也可以使用备用URL方案转发,例如,您可以打开如下所示的SMS消息:
<?php
header( "Location: sms:867-5309" );
例如,您可以让“http://yoursite.com/phone-number.php”在支持设备上启动短信对话,并保持您打开的页面。
我也看到人们使用URL Scheme“javascript:”从浏览器地址栏或书签中运行javascript。
我的问题是:每当我尝试使用PHP标头重定向执行Javscript时都没有任何反应,如下所示:
<?php
header( "Location: javascript:alert('hey!');" );
我的问题是:为什么它不会执行,有没有办法让它运作?
答案 0 :(得分:5)
不,javascript
URI方案只是一个虚假的non-standardized方案,浏览器允许它在锚元素中向后兼容以执行JS。它已被弃用了很长时间,支持正确的事件语法,如下所示:
<a onclick="alert('hey!')">Click me!</a>
如果要在重定向中执行Javascript,则应该反转该方法 - 而不是直接执行服务器请求,使用Ajax请求调用服务器端代码,然后使用onSuccess
回调执行之后要运行的JS代码。
甚至可以轻松地使用jQuery或Mootools这样的库,或者手动使用eval
,让Ajax请求实际返回Javascript代码然后执行,从而为您提供更大的灵活性。