我要问的问题可能听起来很愚蠢,但我一直试图弄清楚几天。我想生成一个指向网站的链接:
example.github.io/Example/Example
最后有变量或其他东西
example.github.io/Example/ExampleVariable
然后在页面加载时读取该变量。在一个完美的世界里,它看起来像这样:
http://Example.github.io/Example/Example<script>function(){}</script>
我还需要确保用户实际访问或至少最终结束的页面是原始链接:即
example.github.io/Example/Example
任何帮助将不胜感激。
如果有人想知道的话。
是的,如果适用,它就在github上。我几乎不懂PHP,所以这不是最好的。这是我做过的ToDo列表管理器应用程序。有一个加载功能,因此用户可以共享列表。加载字符串(我正在尝试阅读的变量)如下所示:
/LoadNAME#THEME#Item A,Item B,ect.
答案 0 :(得分:1)
如果您正在使用github页面,则可以使用URL parameters。在这种情况下,网址看起来像这样:http://mypage.github.io/test/?myparam=value
然后你可以使用javascript查询并根据url包含的url参数执行某些操作。
答案 1 :(得分:1)
或者,您可以在使用斜杠
之后使用此哈希#
旧技巧
example.github.io/Example/#/var1/var2/var3
然后使用window.location.href
和split()
次使用将为您提供
带有一系列参数。
/* URL in address bar:
http://localhost/test/js-url-parameters/#/str1/str2/str3/
*/
var docURL = window.location.href,
params = [];
// filter out the website origin "example.github.io" in the OP example
docURL = docURL.replace(window.location.origin, '');
// if /#/ found then we have URL parameters
// grabbing the parameters part of the URL
if (docURL.indexOf('/#/') > -1) {
docURL = docURL.split('/#/')[1];
if (docURL != '') {
// omit the last forward slash if exist
if (docURL[docURL.length - 1] == '/') {
docURL = docURL.substring(0, docURL.length - 1);
}
// split the URL final string o get an object with all params
params = docURL.split('/');
console.log(params);
}
} else {
console.log('No URL parameters found');
}
/* Output:
["str1", "str2", "str3"]
*/
<强>更新强>
以上输出所有变量为string
,因此要根据您的情况检索parseInt
- 或parseFloat()
所需的数值。
例如,如果是这个网址:
http://localhost/test/js-url-parameters/#/str1/22/str3/
上面的代码会输出 ["str1", "22", "str3"]
,而我们假设22
为整数,为了解决此问题,请添加以下内容:
// for each elements in params, if it is Not a Number (NaN) we return
// it as it is, else it's a nubmer so we parseInt it then return it
for(var i in params){
params[i] = isNaN(parseInt(params[i])) ? params[i] : parseInt(params[i]);
}
上述代码段在params = docURL.split('/');
行之后获得权利。
现在网址:
http://localhost/test/js-url-parameters/#/str1/22/str3/
输出 ["str1", 22, "str3"]
,如您所见22
是一个数字而不是字符串。