在Matlab中检测外部浏览器的URL?
我通常通过“web”命令使用Matlab的内部浏览器,但它给我带来了一个问题,有时无法检测用户何时单击我通过Matlab管理的在线调查的下一步。我从来没有在任何外部浏览器Firefox、Chrome、IE上遇到过这样的问题。我想在用户完成调查时自动关闭浏览器。我知道用户在完成调查后将访问的URL,因此可以查看他们浏览器的URL是否是他们在完成调查后将访问的URL。 现在,使用内部Matlab浏览器,我使用:在Matlab中检测外部浏览器的URL?,matlab,url,browser,external,Matlab,Url,Browser,External,我通常通过“web”命令使用Matlab的内部浏览器,但它给我带来了一个问题,有时无法检测用户何时单击我通过Matlab管理的在线调查的下一步。我从来没有在任何外部浏览器Firefox、Chrome、IE上遇到过这样的问题。我想在用户完成调查时自动关闭浏览器。我知道用户在完成调查后将访问的URL,因此可以查看他们浏览器的URL是否是他们在完成调查后将访问的URL。 现在,使用内部Matlab浏览器,我使用: [s,bwser] = web(url2, '-new', '-notoolbar',
[s,bwser] = web(url2, '-new', '-notoolbar', '-noaddressbox');
cloc = get(bwser, 'currentLocation');
然后检查cloc是否等于给定的URL。我想用外部浏览器做同样的事情。我知道如何调用外部浏览器并为其分配URL。
但是,在参与者单击链接后,如何从该浏览器检索当前URL 您可以尝试以下方法:
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')