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