在 Chrome 扩展程序默认弹出窗口中检索页面元标记的更快方法?
我正在摆弄这个扩展,当单击图标时,它会从当前选项卡中检索标题、url 和元标记。数据显示在默认弹出窗口中,但是,由于使用 AJAX,元数据会延迟(一两秒)。有没有办法像使用 tabs.url 和 tabs.title 作为 url 和标题一样快速获取此信息?
这是 js 文件中的代码:
chrome.tabs.getSelected(null,function(tab) { // null defaults to current window
var title = tab.title;
var url = tab.url;
document.getElementById("title").innerHTML = title;
document.getElementById("url").innerHTML = url;
var txt = "";
// sample url used here, you can make it more dynamic as per your need.
// used AJAX here to just hit the url & get the page source from those website. It's used here like the way CURL or file_get_contents (https://www.php.net/manual/en/function.file-get-contents.php) from PHP used to get the page source.
$.ajax({
url: url,
error: function() {
txt = "Unable to retrieve webpage source HTML";
},
success: function(response){
// will get the output here in string format
// used $.parseHTML to get DOM elements from the retrieved HTML string. Reference: https://api.jquery.com/jquery.parsehtml/
response = $.parseHTML(response);
$.each(response, function(i, el){
if(el.nodeName.toString().toLowerCase() == 'meta' && $(el).attr("name") != null && typeof $(el).attr("name") != "undefined"){
txt += $(el).attr("name") +"="+ ($(el).attr("content")?$(el).attr("content"):($(el).attr("value")?$(el).attr("value"):"")) +"<br>";
console.log($(el).attr("name") ,"=", ($(el).attr("content")?$(el).attr("content"):($(el).attr("value")?$(el).attr("value"):"")), el);
}
});
},
complete: function(){
document.getElementById("desc").innerHTML = txt;
}
});
});
这不是重复的问题。与我的问题相关的建议文章是关于将 div 注入活动窗口的。我正在尝试从中检索数据并在默认弹出窗口中使用它。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
只需使用标准 DOM API 和 JavaScript
switch
查询 DOM 即可处理您感兴趣的不同可能属性。Just query the DOM using standard DOM API's and the JavaScript
switch
to handle the different possible attributes you're interested in.