我想使用我手动在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";
}
}
问题是我无法读取变量,难道我做错了吗?
答案 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];
}
}
};