2012-09-22 7 views
1

Обычно я использую Matlab's internal browser (через, скажем, команду «сеть»), но это дало мне проблему, иногда не обнаруживая, когда пользователь нажимает на онлайн-опрос, который я администрирую через Matlab. У меня никогда не было этой проблемы с любым внешним браузером (Firefox, Chrome, IE). Я хочу закрыть браузер автоматически, когда пользователь дойдет до конца опроса. Я знаю URL-адрес, по которому пользователь отправится после завершения опроса, так что вы можете увидеть, будет ли URL-адрес своего браузера тем, кем он будет после окончания опроса. Прямо сейчас, используя встроенный браузер Matlab, я использую:Определить URL-адрес внешнего браузера в Matlab?

[s,bwser] = web(url2, '-new', '-notoolbar', '-noaddressbox'); 
cloc = get(bwser, 'currentLocation'); 

, а затем проверить, если Cloc равно заданному URL. Я хотел бы сделать то же самое с внешним браузером. Я знаю, как вызвать внешний браузер и присвоить ему URL. Но как я могу получить текущий URL-адрес из этого браузера после того, как участник нажимает на ссылку?

ответ

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') 
Смежные вопросы