使用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;
你能给我一个提示在哪里搜索或从哪里开始修复这个bug?
没有实际的源代码很难重现你的错误,但"Cannot read property '...' of undefined"
是典型的JavaScript错误。我想TWPUnimFrame
是用于显示网页内容的某种组件。
在您的情况下,您需要确保分配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;