gpt4 book ai didi

javascript - 我可以使用 jquery contentWindow 调用命名空间函数吗?

转载 作者:行者123 更新时间:2023-11-28 02:17:45 25 4
gpt4 key购买 nike

我正在使用一些遗留代码,并且正在寻找一种安全的方法来处理以下情况:

我有一个显示产品选择页面的 iframe。我需要向此 iframe 传递带有查询字符串的回调函数的名称。

在 iframe 中,我从查询字符串中获取回调名称并像这样执行它:

$("iframe#content:first", window.top.document)[0].contentWindow[callbackName]();

但这仅在回调是全局公开的函数时才有效。那太蹩脚了。此回调应该位于嵌套对象中。

有什么方法可以指定回调,例如:

'myNamespace.nestedNamespace.myCallbackFunction'

并从 contentWindow 对象执行它?

最佳答案

在这种情况下,如果我理解正确的话,类似下面的东西应该可以解决问题:

// Your callback "path".
var callbackPath = 'myNamespace.nestedNamespace.myCallbackFunction';
if (callbackPath != '') {
// We will need to walk our way to the actual callback.
var parts = callbackPath.split('.');
var callback = $("iframe#content:first", window.top.document)[0].contentWindow;

for (var i = 0; i < parts.length; ++i) {
callback = callback[ parts[i] ];

// Was unable to find callback, bail!
if (!callback)
break;
}

if (typeof callback === 'function')
callback();
}

关于javascript - 我可以使用 jquery contentWindow 调用命名空间函数吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16138142/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com