jQuery Mobile 1.4.5で現在のページのURLを取得する方法

これを重複としてマークしないでください。私はStackOverflowで提案されているすべての方法を試してみましたが、どれもうまくいきません。それらはすべて私に現在のページではなく参照ページのURLを教えてくれます。それとも彼らは全然働かない。 window.location.hrefでも、現在のページのURLではなく参照元のページのURLが返されます。私はjQuery Mobile 1.4.5を使っています。

たとえば、page1.phpにいて、page1.php?getvar = 42へのリンクをクリックしたとします。ページ1は次のようになります。

<!DOCTYPE HTML>
<html>
<head>
    <script src="//ajax.googleapis.com/ajax/libs/jquery/1.12.0/jquery.min.js"></script>
    <link rel="stylesheet" href="//ajax.googleapis.com/ajax/libs/jquerymobile/1.4.5/jquery.mobile.min.css">
    <script src="//ajax.googleapis.com/ajax/libs/jquerymobile/1.4.5/jquery.mobile.min.js"></script>
</head>
<body><div data-role="page" data-dom-cache="false">
Click Here
<?php if ($_GET['getvar']=='42'): ?>
<script>
console.log(window.location.href);
console.log(document.location.href);
console.log($.mobile.activePage.data('url'));
</script>
<?php endif ?>
</div></body></html>

上記のページのリンクをクリックして、コンソールに表示される内容を確認します。私は得ます:

http://hostname/page1.php
http://hostname/page1.php
/page1.php

また、これらのconsole.log()の呼び出しをjQuery $(document).ready()関数でラップしてみた結果も変わりませんでした。

<script>
$(function() {
    console.log(window.location.href);
    console.log(document.location.href);
    console.log($.mobile.activePage.data('url'));
});
</script>

ご覧のとおり、これらのどれも完全なURLではありません。別のファイルにリンクする場合も同じです。そのため、URLにGET変数があるページには影響しません。 /page1.php?getvar=42を見たいと思っています

私はこれと同じ質問をするスタックオーバーフローに関するトピックを見つけましたが、答えはどれも私のために働いていません。おそらく彼らは異なるバージョンのjQuery Mobileを使用しています。ご覧のとおり、私はjQuery 1.4.5を使用しています。

これまでのところ私が見つけた唯一の解決策は、親コンテナーにdata-ajax = "false"を設定することによってjQueryモバイルでのページのajaxロードをオフにすることです。しかし、もっと良い方法があるはずです。

(ところで、これが必要なのは、現在のページをリロードできるようにするためです。しかし現在、現在のページをリロードしようとすると、すべて参照ページに戻ることになります。)

0
これはあなたの助けになるでしょう。 JavaScript "> stackoverflow.com/questions/901115/… 。あなたが探しているものはクエリ文字列と呼ばれます。
追加された 著者 ProgrammerV5,
さて、あなたはそこにないものを手に入れることができません:)あなたは具体的にこう言いました。
追加された 著者 ProgrammerV5,
クエリ文字列がURLに表示されません。それが問題です。
追加された 著者 phpguru,
私の言うとおりです。明確にするために、page1.php?getvar = 42へのリンクをクリックして、現在の場所を確認して、page1.php?getvar = 42を表示している場合でもpage1.phpを取得する方法について説明します。これは、jQuery Mobileがリンクされたページをajaxを使ってDOMにロードすることによる成果物です。
追加された 著者 phpguru,

4 答え

答えは、window.location.hrefをsetTimeout()呼び出しで次のようにラップすることです。

<script>
setTimeout(function() {
    console.log(window.location.href);
}, 0);
</script>

ただし、$(document).ready()呼び出しの内側を折り返すことはできません。

2
追加された
api.jquerymobile.com/jQuery.mobile.path.parseUrl setTimeoitもreadyも使用する必要はありません。 pagecontainerイベントを使用してください。 stackoverflow.com/a/26393037/1771795
追加された 著者 Omar,

次の機能を試してください。私は自分のプロジェクトでこのコードの平和を使用しましたが、うまくいきました。

  var getUrlParameter = function getUrlParameter(sParam) {
    var sPageURL = decodeURIComponent(window.location.search.substring(1)),
        sURLVariables = sPageURL.split('&'),
        sParameterName,
        i;
    for (i = 0; i < sURLVariables.length; i++) {
        sParameterName = sURLVariables[i].split('=');

        if (sParameterName[0] === sParam) {
            return sParameterName[1] === undefined ? true : sParameterName[1];
        }
    }
  };
0
追加された

次の機能を試してください。私は自分のプロジェクトでこのコードの平和を使用しましたが、うまくいきました。

  var getUrlParameter = function getUrlParameter(sParam) {
    var sPageURL = decodeURIComponent(window.location.search.substring(1)),
        sURLVariables = sPageURL.split('&'),
        sParameterName,
        i;
    for (i = 0; i < sURLVariables.length; i++) {
        sParameterName = sURLVariables[i].split('=');

        if (sParameterName[0] === sParam) {
            return sParameterName[1] === undefined ? true : sParameterName[1];
        }
    }
  };
0
追加された

次の機能を試してください。私は自分のプロジェクトでこのコードの平和を使用しましたが、うまくいきました。

  var getUrlParameter = function getUrlParameter(sParam) {
    var sPageURL = decodeURIComponent(window.location.search.substring(1)),
        sURLVariables = sPageURL.split('&'),
        sParameterName,
        i;
    for (i = 0; i < sURLVariables.length; i++) {
        sParameterName = sURLVariables[i].split('=');

        if (sParameterName[0] === sParam) {
            return sParameterName[1] === undefined ? true : sParameterName[1];
        }
    }
  };
0
追加された
JavaScript - 日本のコミュニティ
JavaScript - 日本のコミュニティ
2 参加者の

日本人コミュニティのjavascript