2016-08-03 2 views
0

저는 Chromium의 Delphi wrapper 인 DCEF3를 사용합니다.URL에 JS 코드를 실행 한 후 페이지를 계속 활성화하십시오.

document.getElementById('name').value = 'Test'; 

내가 크롬의 '부하'메서드를 호출하고 URL 필드에 아래의 코드를 실행 이렇게하려면 : 나는 아래의 예처럼, 페이지와 상호 작용하는 내 애플 리케이션에 JS 코드를 많이 실행

javascript:document.getElementById('name').value = 'Test'; 

Chrome을 열고 위의 코드를 URL 입력란에 붙여 넣는 것과 같습니다. 그것은 작동하지만 문제는 내가 명령을 실행 한 후에 브라우저가 빈 페이지의 현재 페이지를 'Test'내용으로 바꿉니다.

내가 요소를 작성하고 활성 페이지를 유지하기 위해이 문제를 피하기 위해 찾을 수있는 유일한 방법은, 다음과 같이, 같은 URL에 추가 '초점'명령을 실행하는 것입니다 :

javascript:document.getElementById('name').value = 'Test'; 
document.getElementById('name').focus(); 

추가 '포커스'방식은 현재 페이지가 빈 페이지로 교체되는 대신 현재 페이지가 활성 상태로 유지되도록합니다.

이 방법이 맞습니까? 이 작업을 수행하는 더 좋은 방법이 있습니까?

감사합니다.

답변

1

포커스를 호출 할 필요가 없습니다.

이제 끝 부분에 false를 반환하여 리디렉션을 사용 중지 할 수 없습니다.

여전히 초점을 void(0)으로 바꿀 수 있습니다.

javascript:document.getElementById('name').value = 'Test'; void(0) 

void(0) 링크가 어디를 가리키고 있지 않은지 나타내는 인기있는 관용구였습니다. 지금은 볼만한 것이지만 브라우저 URL에서 계속 작동합니다.

그런데 대부분의 브라우저에서 URL의 "javascript :"는 사용할 수 없습니다.

+0

포커스를 'return false'로 바꾸어 테스트했지만 화면의 요소 값은 변경되지 않았습니다 ... – delphirules

+1

대답이 업데이트되었습니다. 지금 일해야한다. – Arnial

관련 문제