我正在为一个度假的同事调试一些东西,他对Safari扩展开发知之甚少。
我有一个Safari扩展,可以监听“打开”、“预先导航”、“导航”和“激活”事件。当触发这些事件时,我希望跟踪activeTab的url和页面标题。
然而,在某些情况下(即在打开新选项卡时,在之前导航和导航),页面标题并不总是在safari.application.activeBrowserWindow.activeTab
对象或传递的事件
对象中定义敬我的经理人。
当我将事件对象打印到控制台时,它已正确填充,但如果我直接在事件处理程序中访问事件['target']['title']
,它将返回未命名的
。我可以想象在填充数据时会有延迟,但我不知道如何处理延迟,也找不到任何关于延迟的文档。
仅供参考,我已将网站访问权限设置为my info.plist中的ALL。
有人遇到过这个问题吗?有没有关于如何修复它的想法?
他是一段代码:
safari.application.addEventListener("beforeNavigate", function (event) {
console.log('//-- Event Data -------------------------------------');
console.log(event);
console.log(event['target']);
console.log('Url: ' + event['target']['url']);
console.log('Title: ' + event['target']['title']);
console.log('//-- Tab Data -------------------------------------');
console.log('Url: ' + safari.application.activeBrowserWindow.activeTab.url);
console.log('Title: ' + safari.application.activeBrowserWindow.activeTab.title);
}, true);
以及控制台的输出:
//-- Event Data -------------------------------------
SafariBeforeNavigateEvent
BUBBLING_PHASE: 3
CAPTURING_PHASE: 1
TARGETING_PHASE: 2
bubbles: true
cancelable: true
currentTarget: null
defaultPrevented: false
eventPhase: 0
target: SafariBrowserTab
browserWindow: SafariBrowserWindow
page: SafariWebPageProxy
reader: SafariReader
title: "Google"
url: "https://www.google.ca/"
__proto__: CallbackObject
timeStamp: 1379353767889
type: "beforeNavigate"
url: "http://www.google.ca/"
__proto__: CallbackObject
SafariBrowserTab
browserWindow: SafariBrowserWindow
page: SafariWebPageProxy
reader: SafariReader
title: "Google"
url: "https://www.google.ca/"
__proto__: CallbackObject
Url:
Title: Untitled
//-- Tab Data -------------------------------------
Url:
Title: Untitled
我猜问题在于标题实际上是在HTML页面中定义的。由于这是一个beforeNavigate
事件,因此页面尚未加载,因此通常标题还不可用,只有URL。
一种解决方案可能是使用导航
事件,而不是在页面实际加载之前使用导航
。然而,我不确定是否真的能保证页面被加载,但这确实使它更有可能被加载。
如果这仍然是一个问题,一个更复杂的替代方案是使用注入脚本,每当页面加载时,该脚本都会向全局页面发送消息。在注入的脚本中使用DOM就绪事件,然后向包含页面标题的全局页面发送消息。使用if(windows==window.top)
防止嵌入的iframe也发送消息。
问题内容: 对于我的网站,我想添加一个新功能。 我希望用户能够上传他的书签备份文件(如果可能的话,可以从任何浏览器上传),这样我就可以将其上传到他们的个人资料,而他们不必手动插入所有文件… 我唯一缺少的是从上传文件中提取标题和URL的部分。任何人都可以提供从哪里开始或在哪里阅读的线索? 使用的搜索选项和如何从原始HTML文件提取数据?这是与我最相关的问题,因此不再赘述。 我真的不介意它是否使用jq
返回当前页面URL。 使用 window.location.href 获取当前页面URL。 const currentURL = () => window.location.href; currentURL(); // 'https://google.com'
我有一个PHP代码块,它将根据主页标题为标题指定不同的样式。但是,我的网站在每个主页上也有多个子菜单项。该代码目前用于将新样式分配给主导航页面,但没有将颜色配置文件分配给子页面样式元素。如何扩展解决方案以适应任何新的子页面(即获取主导航项子页面的wordpress/php函数)。 这是我的密码: 因此,我正在寻找类似于的东西,以容纳任何服务子菜单项或关于。我想要一个更自动化的解决方案,而不是将每个
我在WordPress中编写了以下函数: 下面是我在header.php文件中如何调用它: 当你创建一篇新文章时,会有一个元框,你可以在其中输入页面标题以进行搜索引擎优化。如果保留为空,则会显示默认的页面标题。当您在主页上时,将显示默认的页面标题。 然而,我刚刚发现主页并没有像它应该显示的那样显示默认标题;相反,它显示的是最近一篇文章的标题标签。你知道是什么原因造成的吗?或者我如何修复它?
我正在使用Stripe Connect,并在文档中使用了它们的示例代码。你将一个用户重定向到条带页面,他们注册后会重定向回你的站点。Stripe然后会在URL中发送一个代码,以便您能够访问并向用户帐户收费。 重定向后,这段代码就是他们在示例中的内容: 重定向URL为https://connect.stripe.com/oauth/authorize?response_type=code
本文向大家介绍PHP获取当前页面URL函数实例,包括了PHP获取当前页面URL函数实例的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了PHP获取当前页面URL函数实例,分享给大家供大家参考。具体实现方法如下: 在PHP中,没有默认的Function来获取目前所在页面的URL,所以今天就向大家介绍一个在PHP获取当前页面完整URL的PHP函数. 函数代码如下,调用时只需要使用 curPage