提问人:user3191192 提问时间:11/13/2023 更新时间:11/14/2023 访问量:32
从加载的 JQueryUI 选项卡设置页面标题 <title> [closed]
Set page title from JQueryUI tab loaded <title> [closed]
问:
我们正在将内容加载到 JQuery UI 选项卡中,该内容包含 HTML 结构,如下所示:
<html lang="en-US">
<head>
<title>Product ABC</title>
</head>
<body>
Product description, images, order button, etc...
</body>
</html>
我需要获取该文本并将其作为浏览器选项卡标题,例如<title>
document.title = $(loadedContent).filter('title').text();
但似乎 JQuery UI 选项卡控件没有直接公开 ajax 响应。“load”事件提供对加载内容的面板的引用,但它似乎只包含内容,已被删除。<body>
<head>
任何想法如何捕获JQuery UI Tab加载的内容?<title>
答:
0赞
Twisty
11/14/2023
#1
请看以下示例:https://jsfiddle.net/Twisty/uxtnhmcp/
JavaScript的
$(function() {
function getTabTitle(tab) {
console.log("Found Tab Title: " + tab.text().trim());
return tab.text().trim();
}
function setDocTitle(title) {
document.title = title;
console.log("Document Title change to '" + title + "'");
}
$("#tabs").tabs({
beforeLoad: function(e, ui) {
console.log(e.type);
ui.jqXHR.fail(function() {
ui.panel.html(
"Couldn't load this tab. We'll try to fix this as soon as possible. " +
"If this wouldn't be a demo.");
});
},
load: function(e, ui) {
if (ui.tab != undefined) {
setDocTitle(getTabTitle(ui.tab));
}
},
activate: function(e, ui) {
setDocTitle(getTabTitle(ui.newTab));
}
});
});
or 对象将是 HTML 中的列表项。我们可以从元素中获取 并将其用作 Title。tab
newTab
.text()
评论
0赞
user3191192
11/15/2023
我想你误解了这个问题。目标是将页面标题设置为选项卡加载的内容中的 <title> HTML 元素的文本。这会将页面标题设置为选项卡名称,该选项卡名称不是来自动态加载的 HTML。
0赞
Twisty
11/16/2023
@user3191192,这可以通过将生成的 HTML 读取到 jQuery 对象中,然后找到元素并获取其文本内容来完成。 例如。title
$(results).find('title').text();
评论
<head>
body
<html><head><body>
title
ui.tab