Javascript 无法从firefox插件捕获google搜索标题
我正在使用crossrider开发一个firefox插件,它可以捕获url和标题。当尝试从浏览器中捕获标题和url时,插件工作正常。这个插件可以很好地从谷歌搜索中捕获url,但它可以捕获上一个标题并显示出来。同样的代码在chrome中也能正常工作。请参考下面给出的代码:Javascript 无法从firefox插件捕获google搜索标题,javascript,firefox,firefox-addon,crossrider,Javascript,Firefox,Firefox Addon,Crossrider,我正在使用crossrider开发一个firefox插件,它可以捕获url和标题。当尝试从浏览器中捕获标题和url时,插件工作正常。这个插件可以很好地从谷歌搜索中捕获url,但它可以捕获上一个标题并显示出来。同样的代码在chrome中也能正常工作。请参考下面给出的代码: var capture_data = { title : "not defined", desc: "not defined", url : "not defined",
var capture_data = {
title : "not defined",
desc: "not defined",
url : "not defined",
get_info : function(){
this.url = document.location.href;
this.title = document.title;
console.log("Url: "+this.url+" Title:"+this.title)
}
}
window.onhashchange = function(){
console.log(window.location.hash);
capture_data.get_info();
}
请给我一个解决方案我测试了提供的代码,可以重现您遇到的问题 在更新页面标题之前调用onhashchange事件处理程序似乎很简单。通过在获取标题之前引入一个短暂的延迟来解决这个问题,如下面的代码所示
window.onhashchange = function(){
console.log(window.location.hash);
setTimeout(function() {capture_data.get_info();}, 1000);
}
[披露:我是一名Crossrider员工]我测试了提供的代码,可以重现您遇到的问题 在更新页面标题之前调用onhashchange事件处理程序似乎很简单。通过在获取标题之前引入一个短暂的延迟来解决这个问题,如下面的代码所示
window.onhashchange = function(){
console.log(window.location.hash);
setTimeout(function() {capture_data.get_info();}, 1000);
}
[披露:我是一名Crossrider员工]我测试了提供的代码,可以重现您遇到的问题 在更新页面标题之前调用onhashchange事件处理程序似乎很简单。通过在获取标题之前引入一个短暂的延迟来解决这个问题,如下面的代码所示
window.onhashchange = function(){
console.log(window.location.hash);
setTimeout(function() {capture_data.get_info();}, 1000);
}
[披露:我是一名Crossrider员工]我测试了提供的代码,可以重现您遇到的问题 在更新页面标题之前调用onhashchange事件处理程序似乎很简单。通过在获取标题之前引入一个短暂的延迟来解决这个问题,如下面的代码所示
window.onhashchange = function(){
console.log(window.location.hash);
setTimeout(function() {capture_data.get_info();}, 1000);
}
[披露:我是一名Crossrider员工]如果在页面标题更新之前触发onhaschange,您可以尝试使用变异观察者来避免设置超时 您将观看
title
元素的childNode
所以试试这个:
window.onhashchange = function() {
console.log(window.location.hash);
var title = document.querySelector('title');
var mobs = new window.MutationObserver(function(mutations) {
mutations.forEach(function(mutation) {
console.log(mutation.type, mutation);
if (mutation.addedNodes && mutation.addedNodes.length > 0) {
console.log('nodes added');
}
});
});
mobs.observe(title, {
childList: true,
subtree: true
});
}
未经测试,但应该会让您走得更远,只需查看
控制台.log
s,您就可以缩小它的范围以满足您的需要。如果在页面标题更新之前触发onhaschange,您可以尝试使用变异观察程序来避免设置超时
您将观看title
元素的childNode
所以试试这个:
window.onhashchange = function() {
console.log(window.location.hash);
var title = document.querySelector('title');
var mobs = new window.MutationObserver(function(mutations) {
mutations.forEach(function(mutation) {
console.log(mutation.type, mutation);
if (mutation.addedNodes && mutation.addedNodes.length > 0) {
console.log('nodes added');
}
});
});
mobs.observe(title, {
childList: true,
subtree: true
});
}
未经测试,但应该会让您走得更远,只需查看
控制台.log
s,您就可以缩小它的范围以满足您的需要。如果在页面标题更新之前触发onhaschange,您可以尝试使用变异观察程序来避免设置超时
您将观看title
元素的childNode
所以试试这个:
window.onhashchange = function() {
console.log(window.location.hash);
var title = document.querySelector('title');
var mobs = new window.MutationObserver(function(mutations) {
mutations.forEach(function(mutation) {
console.log(mutation.type, mutation);
if (mutation.addedNodes && mutation.addedNodes.length > 0) {
console.log('nodes added');
}
});
});
mobs.observe(title, {
childList: true,
subtree: true
});
}
未经测试,但应该会让您走得更远,只需查看
控制台.log
s,您就可以缩小它的范围以满足您的需要。如果在页面标题更新之前触发onhaschange,您可以尝试使用变异观察程序来避免设置超时
您将观看title
元素的childNode
所以试试这个:
window.onhashchange = function() {
console.log(window.location.hash);
var title = document.querySelector('title');
var mobs = new window.MutationObserver(function(mutations) {
mutations.forEach(function(mutation) {
console.log(mutation.type, mutation);
if (mutation.addedNodes && mutation.addedNodes.length > 0) {
console.log('nodes added');
}
});
});
mobs.observe(title, {
childList: true,
subtree: true
});
}
未经测试,但应该会让你走得很远,只需要观看
控制台。日志s,你就可以缩小范围来做你需要的事情。非常感谢你。我以前试过这个,请让我知道它在任何情况下是否失败,因为谷歌搜索非常快。非常感谢你。我以前试过这个,请让我知道它是否在任何情况下失败,因为谷歌搜索非常快速谢谢你这么多…,我以前试过这个,请让我知道它是否在任何情况下失败,因为谷歌搜索非常快速谢谢你这么多…,我以前试过这个,请让我知道它是否在任何情况下失败,因为谷歌搜索非常快速谢谢你这么多,它在firefox上运行得很好,但在chrome上不起作用。谢谢你让我知道我没有测试它,所以这是个好消息。其他浏览器中的突变观察者实现可能有点不同,但我不确定有多不同。非常感谢,它在firefox上运行得很好,但在chrome上运行得不好。感谢你让我知道我没有测试它,所以这是个好消息。其他浏览器中的突变观察者实现可能有点不同,但我不确定有多不同。非常感谢,它在firefox上运行得很好,但在chrome上运行得不好。感谢你让我知道我没有测试它,所以这是个好消息。其他浏览器中的突变观察者实现可能有点不同,但我不确定有多不同。非常感谢,它在firefox上运行得很好,但在chrome上运行得不好。感谢你让我知道我没有测试它,所以这是个好消息。其他浏览器中的变异观察者实现可能有点不同,但我不确定有多不同。