【发布时间】:2014-04-04 21:01:48
【问题描述】:
我有一个旧的“封闭”系统,它在自己的容器中运行 IE,这意味着在许多情况下我必须像穴居人一样编写代码,因为我不能使用任何浏览器开发工具/控制台对对象进行 X 光检查从远程系统返回。
现在,我正在查看的特定函数是来自第三方的回调(它变得很复杂),它返回我愿意打赌的是标准 JSON 对象。
function core_OnUeDeltaItemsUpdate(dataType, oData)
{
if (dataType == "Units")
{
// Bail if dispatch report xml hasn't been loaded yet.
if (oXml == null)
return;
..... does lots of stuff
// Reload the content in case any of our displayed units changed
processUeDelta.click();
}
}
... at the bottom of the page
<button style="display:none;" type="button" id="processUeDelta"/>
以及我希望使用 jQuery 的附加 javascript 文件
$(function(){
$("#processUeDelta").click(function(){
var i = 0;
alert(this.ueDelta);
for(var propertyName in this.ueDelta)
{
i++;
alert("property " + i + ": " + oData[propertyName]);
}
});
});
现在,当前将自身绑定到隐藏按钮的最后一个函数无法解析 oData。我在这里被困在两件事上。
- 我不确定如何将 oData 对象传递给附加的事件处理程序
- 我不太喜欢这种设计,也许还有另一种方法可以取出中间按钮,这样我就可以处理 JSON 数据对象 oData。
注意事项:
- 这是基于数据泵的,所以这个回调函数平均被调用 5 秒。
- 我仅限于使用 jQuery 1.7.1
- 我看不到该对象,我的浏览器无法充当测试工具,移动部件太多,我无法从应用程序外部对其进行测试。
【问题讨论】:
-
你不能编辑
core_OnUeDeltaItemsUpdate函数吗? -
@NaNpx 那是我玩的地方。如果你能看到我没有看到的方法,请赐教
-
如果可以更新
core_OnUeDeltaItemsUpdate,那为什么要触发隐藏按钮上的事件来传递数据呢?您可以在您的 jQuery 文件中创建一个函数并从core_OnUeDeltaItemsUpdate调用它,并将oData作为参数传入。 -
@NaNpx 我不确定我理解你的意思。我对 core_OnUeDeltaItemsUpdate 的问题是它位于 webapp 的不同部分(字面意思是在堆栈上,更靠近根目录)。所以它是订阅它的许多其他函数的基本回调函数。因此,我不能纯粹出于我的目的直接编辑它。
标签: javascript jquery json jquery-1.7