读取存储在URL中的变量

时间:2018-06-28 11:07:28

标签: javascript html

我想使用我手动在URL中插入的变量

例如网址test.coaching.com?c=1

然后我想检查var c是否附加了任何值,如果有,我会显示一个标签,如果没有,我会隐藏一个文本框

到目前为止,这是我的代码:

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

         function start()
         {
            var first = getUrlVars()["c"];

            if ( first == "")
            {
                document.getElementById("labeler").style.display = "none";
                document.getElementById("emailcoacher").style.display = "none";
            }
            else
            {
                document.getElementById("labeler").style.display = "block";
                document.getElementById("emailcoacher").style.display = "block";
            }

         }

问题是我无法读取变量,难道我做错了吗?

3 个答案:

答案 0 :(得分:0)

更新:它不是URL参数,不是哈希,因此请在下面更新答案。

您可以使用URL对象。

var url_string = window.location.href
var url = new URL(url_string);
var c = url.searchParams.get("c");
console.log(c);

here的答案


忽略: 如果您想从网址中获取哈希值,请尝试使用。

window.location.hash

,然后根据需要解构哈希。

答案 1 :(得分:0)

我基本上是在重复Ben Fortune提到的内容。


大多数浏览器都支持URL Interface,它允许您使用<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent" android:weight_sum ="11" android:id="@+id/setting_frag" android:baselineAligned="false"> <TextView android:layout_width="wrap_content" android:layout_height="0dp" android:text="hello" android:layout_weight="2"/> <ListView android:id="@+id/lv" android:layout_width="match_parent" android:layout_height="0dp" android:layout_weight="5" android:background="?attr/colorBackgroundFloating" android:descendantFocusability="blocksDescendants" /> <RelativeLayout android:id="@+id/setting_dialogue" android:layout_width="match_parent" android:layout_height="0dp" android:layout_weight="4"> <ViewStub android:layout_width="match_parent" android:layout_height="match_parent" android:id="@+id/device_info_stub" android:inflatedId="@+id/device_info_stub_inflated_id" android:layout="@layout/device_info" /> <ViewStub android:layout_width="match_parent" android:layout_height="match_parent" android:id="@+id/health_check_stub" android:inflatedId="@+id/health_check_stub_inflated_id" android:layout="@layout/health_checks" /> <ViewStub android:layout_width="match_parent" android:layout_height="match_parent" android:id="@+id/system_config_stub" android:inflatedId="@+id/system_config_stub_inflated_id" android:layout="@layout/system_configuration" /> <ViewStub android:layout_width="match_parent" android:layout_height="match_parent" android:id="@+id/database_stats_stub" android:inflatedId="@+id/database_stats_stub_inflated_id" android:layout="@layout/database_stats" /> <ViewStub android:layout_width="match_parent" android:layout_height="match_parent" android:id="@+id/check_update_stub" android:inflatedId="@+id/device_info_stub_inflated_id" android:layout="@layout/device_info" /> </RelativeLayout>

从URL干净地解析参数。

.searchParams.get(args)

答案 2 :(得分:-1)

使用此功能:

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];
        }
    }
};