我通常使用Matlab's internal browser
(通过'web'命令),但是有时我没有检测到用户点击我通过Matlab管理的在线调查时的下一个问题。我从来没有遇到任何外部浏览器(Firefox,Chrome,IE)的问题。我想在用户到达调查结束时自动关闭浏览器。我知道完成调查后用户将访问的URL,因此可以查看他们的浏览器的URL是否是他们在完成调查后将要访问的URL。
现在使用内部Matlab浏览器,我使用:
[s,bwser] = web(url2, '-new', '-notoolbar', '-noaddressbox');
cloc = get(bwser, 'currentLocation');
然后检查 cloc 是否等于给定的URL。我希望用外部浏览器做同样的事情。我知道如何调用外部浏览器并为其分配URL。 但是,在参与者点击链接后,如何从该浏览器中检索当前URL?
答案 0 :(得分:0)
你可以试试这个:
function RunSurvey( startURL, finalURL )
finalURL = lower(finalURL);
hfig = figure( 'Menu','none','Name','Survey',...
'ResizeFcn',@reSize,...
'DeleteFcn',@figDelete);
hExp = actxcontrol('Shell.Explorer.2',calcSize,hfig);
Navigate(hExp,startURL);
while (true)
pause(1);
current = lower(get(hExp,'LocationURL'));
if ~isempty(strfind(current,finalURL))
break;
end
end
close( hfig )
% Figure delete function
function figDelete(src,evnt)
hExp.delete;
end
function [size]=calcSize()
pos = get(hfig,'Position');
size = [2 2 pos(3)-5 pos(4)-20];
end
function reSize(src,evnt)
if ~exist('hExp','var')
return
end
move(hExp,calcSize);
end % reSize
end % RunSurvey
使用以下方式致电:
RunSurvey('www.google.com','www.mathworks.com')