在Matlab中检测外部浏览器的URL?

时间:2012-09-22 14:47:03

标签: matlab url browser external

我通常使用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?

1 个答案:

答案 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')