【问题标题】:Add parameter to URL with Javascript使用 Javascript 向 URL 添加参数
【发布时间】:2012-05-01 15:46:19
【问题描述】:

我有一个带有 jQ​​uery 灯箱的网页,它会在页面加载时自动打开。在灯箱中,我实现了 Facebook Like 按钮(这是电子邮件中 ​​Facebook Like 按钮的 2 单击解决方案)。现在,当 Facebook 用户通过单击 Facebook 上的“喜欢”URL 访问我的网页时,我想关闭灯箱。我不想创建两个不同的页面(一个打开灯箱,另一个关闭),我想我可以通过使用 Javascript 向 URL 添加一个参数然后根据该参数打开/关闭灯箱来避免这种情况.这是一种安全的方法吗?我该怎么做?

【问题讨论】:

    标签: javascript facebook parameters url-parameters


    【解决方案1】:

    你可以使用我found here的这个JS函数获取URL参数:

    function getUrlVars() {
        var vars = {};
        var parts = window.location.href.replace(/[?&]+([^=&]+)=([^&]*)/gi, function(m,key,value) {
            vars[key] = value;
        });
        return vars;
    }
    

    然后*添加使用?lightbox=1 例如www.example.com?lightbox=1 并使用上述函数读取它:

    if(getUrlVars()["lightbox"]=="1"){
        //...
    }
    

    *要添加参数,您可以:

    • 更改链接href属性element.href = "http://www.newURL.com?param=1";并等待用户点击
    • 重定向到新位置window.location.href = "http://www.newURL.com?param=1";

    【讨论】:

    • 这似乎进入了一个无限循环。 :-(
    • 当您说添加到链接 ?lightbox=1 时,您的意思是 var url = "www.example.com?lightbox=1";
    • 该函数只抓取 url 参数但不附加到它?lighbox=1。我正在尝试附加到网址,以便我可以根据新参数打开和关闭灯箱。
    • @user1312079 我更新了问题,提出了两个关于如何将参数附加到 url 的选项
    • 通过将参数附加到 facebook iframe 之类的按钮来使其工作。 使用 XFBML facebook不接受参数 ?lightbox=1。 example.com/example.html?lightbox=1" send="true" width="450" show_faces="true">有什么想法吗?
    【解决方案2】:

    我相信这是您所追求的粗略代码:

    <script type="text/javascript">
        document.location="http://example.com/index.php?noLightBox=1";
    </script>
    

    然后在 index.php 上,你会想要这样的东西:

    <?php 
    function isset_or(&$check, $alternate = NULL) 
    { 
        return (isset($check)) ? (empty($check) ? $alternate : $check) : $alternate; 
    } 
    
    function getGETPOST($var) 
    { 
           return isset_or($_GET[$var],isset_or($_POST[$var],"Empty")); 
    } 
    ?>
    

    例子:

    if(getGETPOST('noLightBox') != 1) {
    // Code to display the light box comes here.
    }
    // Else normal page code
    

    希望这对您有所帮助! 来源:http://php.net/manual/en/function.isset.php & W3School 的 PHP 教程

    【讨论】:

    • 你可以在没有服务器端脚本的情况下做到这一点吗?谢谢。
    • 在第一页上它是本地客户端支持的 JavaScirpt,如果你不想在 PHP 中使用另一端,这里有一种在 JavaScript 中实现的方法。 stackoverflow.com/questions/1961069/…这是最乏味的。
    • 感谢您的帮助。我试试看。
    猜你喜欢
    • 2019-07-04
    • 2010-10-03
    • 1970-01-01
    • 2012-12-29
    • 2015-08-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多