我一直在尝试使用 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 header 重定向执行 Javscript 时,什么也没有发生,就像这样:
<?php
header( "Location: javascript:alert('hey!');" );
我的问题是:为什么它不执行,有没有办法让它工作?
最佳答案
不,javascript
URI 方案只是一个假的 non-standardized方案,浏览器允许在 anchor 元素中向后兼容以执行 JS。为了支持正确的事件语法,它已被弃用很长时间,如下所示:
<a onclick="alert('hey!')">Click me!</a>
如果你想在“重定向”中执行 Javascript,你应该反转方法 - 而不是直接执行服务器请求,使用 Ajax 请求调用服务器端代码,然后使用 onSuccess
回调执行之后要运行的JS代码。
甚至可以使用 jQuery 或 Mootools 等库轻松实现,或者手动使用 eval
,让 Ajax 请求实际返回 Javascript 代码然后执行,让您更加灵活。
关于javascript - 在 PHP 重定向中执行 Javascript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21948654/