使用 jQuery 从 CSS href 查找服务器名称
Find server name from CSS href with jQuery
如何使用 jQuery 或 JavaScript 将以下服务器路径分配给变量?
<link rel="stylesheet" href="https://myServer:44301/Some/Path/">
来自
<link rel="stylesheet" href="/core/assets/styles.min.css">
<link rel="stylesheet" href="/Content/Site.css">
<link rel="stylesheet" href="https://myServer:44301/Some/Path/">
<link rel="stylesheet" href="https://anotherServer/Another/Path/">
需要匹配的字符串Some/Path
为了清楚起见,变量应包含字符串 https://myServer:44301/
这可以通过 JQuery 通过 运行 您页面上的以下代码来完成:
var server = $("link[href*='/Some/Path']").attr("href").replace("Some/Path/", "");
它的作用是 select href 包含 /Some/Path 的元素并得到整个 href 属性的 text/value。然后它删除 Some/Path/ 部分只剩下 https://myServer:44301/
,然后在变量 server
中设置。
片段:
var server = $("link[href*='/Some/Path']").attr("href").replace("Some/Path/", "");
alert(server);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<link rel="stylesheet" href="/core/assets/styles.min.css">
<link rel="stylesheet" href="/Content/Site.css">
<link rel="stylesheet" href="https://myServer:44301/Some/Path/">
<link rel="stylesheet" href="https://anotherServer/Another/Path/">
$(function() {
$("link").each(function() {
var href = $(this).prop("href");
alert(href);
});
});
<!DOCTYPE html>
<html>
<head>
<title>title here</title>
<meta charset="utf-8" />
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<link rel="stylesheet" href="/core/assets/styles.min.css">
<link rel="stylesheet" href="/Content/Site.css">
<link rel="stylesheet" href="https://myServer:44301/Some/Path/">
<link rel="stylesheet" href="https://anotherServer/Another/Path/">
</head>
<body>
<!-- page content -->
</body>
</html>
下面的代码获取每个 link 并使用 alert()
显示它们。根据你的情况,我让你用条件块 if()
包裹 alert()
以获取正确的 href(也许你的 links 总是这样设置,所以你会想要参加第三次,等等...)。
你可以试试这个:
function getHostWithPath(path) {
var linkNodeList = document.getElementsByTagName('link');
for (var i = 0 ; i <linkNodeList.length ; i++) {
var l = document.createElement("a");
l.href = linkNodeList[i].href;
/*
// Usefull properties available in l:
console.log(l.hostname);
console.log(l.port);
console.log(l.pathname);
console.log(l.hash);
console.log(l.protocol);
console.log(l.search); // Query String
*/
if (l.pathname == path) {
var re = new RegExp(path + '.*');
return l.href.replace(re, '');
}
}
}
var myHostname = getHostWithPath('/Some/Path');
如何使用 jQuery 或 JavaScript 将以下服务器路径分配给变量?
<link rel="stylesheet" href="https://myServer:44301/Some/Path/">
来自
<link rel="stylesheet" href="/core/assets/styles.min.css">
<link rel="stylesheet" href="/Content/Site.css">
<link rel="stylesheet" href="https://myServer:44301/Some/Path/">
<link rel="stylesheet" href="https://anotherServer/Another/Path/">
需要匹配的字符串Some/Path
为了清楚起见,变量应包含字符串 https://myServer:44301/
这可以通过 JQuery 通过 运行 您页面上的以下代码来完成:
var server = $("link[href*='/Some/Path']").attr("href").replace("Some/Path/", "");
它的作用是 select href 包含 /Some/Path 的元素并得到整个 href 属性的 text/value。然后它删除 Some/Path/ 部分只剩下 https://myServer:44301/
,然后在变量 server
中设置。
片段:
var server = $("link[href*='/Some/Path']").attr("href").replace("Some/Path/", "");
alert(server);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<link rel="stylesheet" href="/core/assets/styles.min.css">
<link rel="stylesheet" href="/Content/Site.css">
<link rel="stylesheet" href="https://myServer:44301/Some/Path/">
<link rel="stylesheet" href="https://anotherServer/Another/Path/">
$(function() {
$("link").each(function() {
var href = $(this).prop("href");
alert(href);
});
});
<!DOCTYPE html>
<html>
<head>
<title>title here</title>
<meta charset="utf-8" />
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<link rel="stylesheet" href="/core/assets/styles.min.css">
<link rel="stylesheet" href="/Content/Site.css">
<link rel="stylesheet" href="https://myServer:44301/Some/Path/">
<link rel="stylesheet" href="https://anotherServer/Another/Path/">
</head>
<body>
<!-- page content -->
</body>
</html>
下面的代码获取每个 link 并使用 alert()
显示它们。根据你的情况,我让你用条件块 if()
包裹 alert()
以获取正确的 href(也许你的 links 总是这样设置,所以你会想要参加第三次,等等...)。
你可以试试这个:
function getHostWithPath(path) {
var linkNodeList = document.getElementsByTagName('link');
for (var i = 0 ; i <linkNodeList.length ; i++) {
var l = document.createElement("a");
l.href = linkNodeList[i].href;
/*
// Usefull properties available in l:
console.log(l.hostname);
console.log(l.port);
console.log(l.pathname);
console.log(l.hash);
console.log(l.protocol);
console.log(l.search); // Query String
*/
if (l.pathname == path) {
var re = new RegExp(path + '.*');
return l.href.replace(re, '');
}
}
}
var myHostname = getHostWithPath('/Some/Path');