使用uniGUI框架执行JS代码时出现此错误。
无法读取未定义的属性“ scrollView”
此过程中使用此属性。
procedure SetScrollboxSize(AFramem: TWPUnimFrame; ASize: Integer);
begin
if ASize > AFramem.ScrollBoxm.ClientHeight then
UniSession.JSCode(AFramem.Scrollboxm.JSName
+ '.scrollableBehavior.scrollView.getScroller().maxPosition.y = '
+ (ASize - AFramem.Scrollboxm.ClientHeight).ToString + ';')
else
UniSession.JSCode(AFramem.Scrollboxm.JSName
+ '.scrollableBehavior.scrollView.getScroller().maxPosition.y = 0;');
end;
您能给我一个提示,从哪里搜索或从哪里开始修复此错误?
答案 0 :(得分:0)
没有实际的源代码很难再现错误,但是"Cannot read property '...' of undefined"
是典型的JavaScript错误。我猜想TWPUnimFrame
是某种用于显示Web内容的组件。
在您的情况下,您需要确保分配了AFramem.Scrollboxm.JSName + '.scrollableBehavior'
变量。您可以尝试使用console.log()
输出一些信息并调试JavaScript代码:
procedure SetScrollboxSize(AFramem: TWPUnimFrame; ASize: Integer);
var
code: string;
begin
code := 'console.log(' + AFramem.Scrollboxm.JSName + 'scrollableBehavior.scrollView); ';
if ASize > AFramem.ScrollBoxm.ClientHeight then
code := code +
AFramem.Scrollboxm.JSName +
'.scrollableBehavior.scrollView.getScroller().maxPosition.y = ' +
(ASize - AFramem.Scrollboxm.ClientHeight).ToString + ';'
else
code := code +
AFramem.Scrollboxm.JSName +
'.scrollableBehavior.scrollView.getScroller().maxPosition.y = 0;';
UniSession.JSCode(code);
end;