2012-12-19 1 views
0

프레임을 광범위하게 사용하는 웹 사이트를 고치고 있습니다.Perl, Mechanize-Firefox를 사용하면 더 큰 프레임 셋 내에 남아있는 동안 어떻게 프레임을 확장 할 수 있습니까?

function CheckUniqName(uniq) { 
if (top.name != uniq) { 
top.window.location.assign("<a webpage I don't want to redirect to>"); 
return false; 
} 
return true; 
} 
CheckUniqName("#unique_string#") 

그때 나는 즉시 내가 돈 "웹 페이지에 리디렉션 $ mech-> follow_link (이름 => 'FrameName')를 사용하여 이러한 프레임 중 하나 열 경우 각 프레임 내에서 지금과 같은 자바 스크립트의 조각이다 '로 리디렉션하고 싶지 않습니다'. JavaScript를 "off"로 설정하면 리다이렉트를 방지 할 수 있지만 페이지에서 특정 작업을 완료하려면 JavaScript를 "on"해야합니다.

나는이 일을하는 방법에 대한 몇 가지 아이디어를 가지고,하지만 난이를 구현하는 방법을 모른다 :

(1) 프레임을 확장하기보다는 링크로 그들을 따르십시오. 프레임을 확장했지만 더 큰 프레임 세트 내에 있으면 top.name은 uniq와 같고 리다이렉트하지 않습니다 (맨 위 윈도우의 이름이 "# unique_string #"이기 때문에). 어떻게 할 수 있니? 나는 $ mech-> expand_frames가 어떻게 작동하는지 이해하지 못한다.

(2) JS의이 줄을 비활성화하십시오. Mechanize에서 프로그램이 특정 내용의 줄을 무시하도록 할 수 있습니까? Mechanize가 "top.window.location.assign (" ");" 리디렉션되지 않습니다. 그렇게 할 수 있습니까?

(3) 변수 top.name의 값을 변경하십시오. top.name을 # unique_string #과 동일하게 재 할당 할 수 있다면 창 이름이 무엇인지에 관계없이 검사를 통과 할 수 있습니다. 그게 가능할까요? 나는 서버가 창 이름을 정의한다고 생각한다.

스택의 도움이 있으면 대단히 감사하겠습니다. 이것은 나를 미치게합니다.

답변

0

어쩌면 greasemonkey 플러그인을 사용하여 페이지가로드되기 전에 페이지에서이 부분을 제거 할 수 있습니까?

감사합니다.

관련 문제