获取 Firefox 插件来检测和模拟检查 Apple Pay 支持的尝试
getting a Firefox plugin to detect and mimic attempts to check for Apple Pay support
现在 Apple 的信用卡产品已经推出,我可以通过 Apple Pay 在网上购物获得 2% 的现金返还。不幸的是,我选择的浏览器是 Firefox,它还不支持 Apple Pay。
我想检测检查 Apple Pay 支持的尝试,这样我就可以以某种方式提醒自己并切换到 Safari 以完成我的购买。根据 Apple's docs,此检查是通过 window.ApplePaySession
.
执行的
因此,我在扩展中尝试了以下操作:
manifest.json
{
"manifest_version": 2,
"name": "applepay",
"version": "1.0",
"content_scripts": [
{
"matches": [
"*://*/*"
],
"js": [
"applepay.js"
]
}
]
}
applepay.js
window.ApplePaySession = {
canMakePayments: function () {
console.log('canMakePayments');
return Promise.resolve(true);
},
canMakePaymentsWithActiveCard: function () {
console.log('canMakePaymentsWithActiveCard');
Promise.resolve(true);
},
};
我能够在 applepay.js
中 console.log(window)
并获得整个对象,但是我对对象的 更改 似乎没有生效- 它的表现就像 window
是只读的。我错过了什么?
在 Firefox 中,内容脚本(用 WebExtensions 编写的插件)与页面脚本(网站脚本)不共享相同的上下文。
在您的内容脚本中,执行与此类似的操作:
function notify(message) {
console.log("do something");
}
exportFunction(notify, window, {defineAs:'notify'});
之后,页面脚本将看到 window.notify 存在。
现在 Apple 的信用卡产品已经推出,我可以通过 Apple Pay 在网上购物获得 2% 的现金返还。不幸的是,我选择的浏览器是 Firefox,它还不支持 Apple Pay。
我想检测检查 Apple Pay 支持的尝试,这样我就可以以某种方式提醒自己并切换到 Safari 以完成我的购买。根据 Apple's docs,此检查是通过 window.ApplePaySession
.
因此,我在扩展中尝试了以下操作:
manifest.json
{
"manifest_version": 2,
"name": "applepay",
"version": "1.0",
"content_scripts": [
{
"matches": [
"*://*/*"
],
"js": [
"applepay.js"
]
}
]
}
applepay.js
window.ApplePaySession = {
canMakePayments: function () {
console.log('canMakePayments');
return Promise.resolve(true);
},
canMakePaymentsWithActiveCard: function () {
console.log('canMakePaymentsWithActiveCard');
Promise.resolve(true);
},
};
我能够在 applepay.js
中 console.log(window)
并获得整个对象,但是我对对象的 更改 似乎没有生效- 它的表现就像 window
是只读的。我错过了什么?
在 Firefox 中,内容脚本(用 WebExtensions 编写的插件)与页面脚本(网站脚本)不共享相同的上下文。
在您的内容脚本中,执行与此类似的操作:
function notify(message) {
console.log("do something");
}
exportFunction(notify, window, {defineAs:'notify'});
之后,页面脚本将看到 window.notify 存在。