【问题标题】:javascript&jquery: show URL parameters on loadjavascript&jquery:加载时显示 URL 参数
【发布时间】:2013-08-02 06:02:12
【问题描述】:

我正在使用 javascript 访问 URL 参数。然后我用 jQuery Mobile 操作 DOM。但是当我使用参数访问 html 文件时,它没有显示。我需要刷新页面以使其正常工作。我能做什么?

Javascript:

<script type="text/javascript" charset="utf-8">
    $(document).ready(function() {
    // Read a page's GET URL variables and return them as an associative array.
        function getUrlVars()
        {
            var vars = [], hash;
            var hashes = window.location.href.slice(
                               window.location.href.indexOf('?') + 1).split('&');
            for(var i = 0; i < hashes.length; i++)
            {
                hash = hashes[i].split('=');
                vars.push(hash[0]);
                vars[hash[0]] = hash[1];
            }
            return vars;
        }
        var vars = getUrlVars()
        console.log(vars.institutname)
        $("#tasksPage").find("h1").append(vars.institutname)
        })
    </script>

编辑

我刚刚注意到没有执行任何 jQuery/javascript。 需要明确的是:我有一个带有 URL 参数的 html 页面的链接。但是,如果我单击该链接并打开页面,它不会执行我的代码。我需要刷新才能完成这项工作。

我正在使用 jQuery Mobile。

【问题讨论】:

  • 如果您使用事件 'onload' 而不是 'document.ready',您的脚本是否会显示相同的行为?
  • 你是这个意思吗? $(window).load(function() { 那么是的,同样的行为。我必须说,我正在使用 jQuery Mobile。
  • getUrlVars 在这里可以正常工作吗?至少在 Chrome 和 FireFox 中。插入到名为http://localhost/url.html?institutname=test1&amp;var2=test2 - tasksPage -> h1 的测试文件url.html 中附加了test1(不刷新)。还是我误会了?
  • 是的,它有效。如果您直接打开页面,它会起作用。但是我有另一个页面,其中包含指向该页面的链接。通过链接访问时它不会执行我的代码。
  • 还是我误会了您的帖子?您是否链接到该文件?

标签: javascript jquery dom


【解决方案1】:
function getUrlVars()
    {
        var vars = {}, hash;
        var hashes = window.location.href.slice(
                           window.location.href.indexOf('?') + 1).split('&');
        for(var i = 0; i < hashes.length; i++)
        {
            hash = hashes[i].split('=');

            vars[hash[0]] = hash[1];
        }
        return vars;
    }

vars 需要是一个对象,这样你才能执行 vars[hash[0]] = hash[1];

【讨论】:

  • 试过了。函数 getUrlVars() 在我的问题中是正确的。我没有任何问题。我的问题是 console.log 并且 DOM 操作仅适用于重新加载页面。我有一个带有 URL 参数的页面链接,我需要刷新页面才能让 jQuery 正常工作。
  • 向 URL 添加参数 ;)
【解决方案2】:

解决了。我需要将此添加到页面的链接中:

data-ajax='false'

【讨论】:

    猜你喜欢
    • 2013-07-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-15
    • 1970-01-01
    • 1970-01-01
    • 2014-03-02
    相关资源
    最近更新 更多