자바 스크립트를 사용하여 다른 탭에서 새 페이지를 열고 싶지만 현재 탭에 초점을 맞추고 싶습니다. 다음과 같이 할 수 있습니다.
open('http://example.com/');
focus();
그러나 크롬에서이 작업을 수행하면 현재 탭으로 다시 전환하기 전에 잠시 새 탭이 깜박입니다. 나는 이것을 피하고 싶다.
이 애플리케이션은 개인 북마크릿이므로 최신 Chrome에서만 작동하면됩니다.
자바 스크립트를 사용하여 다른 탭에서 새 페이지를 열고 싶지만 현재 탭에 초점을 맞추고 싶습니다. 다음과 같이 할 수 있습니다.
open('http://example.com/');
focus();
그러나 크롬에서이 작업을 수행하면 현재 탭으로 다시 전환하기 전에 잠시 새 탭이 깜박입니다. 나는 이것을 피하고 싶다.
이 애플리케이션은 개인 북마크릿이므로 최신 Chrome에서만 작동하면됩니다.
답변:
업데이트 : Google 크롬 41 버전에서는 initMouseEvent
동작이 변경된 것 같습니다.
이는 속성이 원하는대로 설정된 동적으로 생성 된 요소 에서 ctrl
+ click
(또는 배경 탭을 여는 다른 키 / 이벤트 조합)를 시뮬레이션하여 수행 할 수 있습니다.a
href
url
실행 중 : 바이올린
function openNewBackgroundTab(){
var a = document.createElement("a");
a.href = "http://www.google.com/";
var evt = document.createEvent("MouseEvents");
//the tenth parameter of initMouseEvent sets ctrl key
evt.initMouseEvent("click", true, true, window, 0, 0, 0, 0, 0,
true, false, false, false, 0, null);
a.dispatchEvent(evt);
}
크롬에서만 테스트
a.target='_blank';
.
MouseEvent('click', {view: window, ctrlKey: true, metaKey: true});
하면 새로 열린 탭이 여전히 포커스를 훔칩니다. 내가 뭔가를 놓치고 있습니까?
이 질문에 대한 THX! 모든 인기있는 브라우저에서 잘 작동합니다.
function openNewBackgroundTab(){
var a = document.createElement("a");
a.href = window.location.pathname;
var evt = document.createEvent("MouseEvents");
//the tenth parameter of initMouseEvent sets ctrl key
evt.initMouseEvent("click", true, true, window, 0, 0, 0, 0, 0,
true, false, false, false, 0, null);
a.dispatchEvent(evt);
}
var is_chrome = navigator.userAgent.toLowerCase().indexOf('chrome') > -1;
if(!is_chrome)
{
var url = window.location.pathname;
var win = window.open(url, '_blank');
} else {
openNewBackgroundTab();
}
내가 기억하는 한 이것은 브라우저 설정에 의해 제어됩니다. 즉, 사용자는 백그라운드 또는 포 그라운드에서 새 탭을 열지 여부를 선택할 수 있습니다. 또한 새 팝업이 새 탭에서 열릴 지 아니면 그냥 ... 팝업을 열지 선택할 수 있습니다.
예를 들어 파이어 폭스 환경 설정에서 :
마지막 옵션을 확인하십시오.
나는 당신이 찾고있는 것을 아주 간단한 방법으로 정확하게했습니다. Chrome과 Opera에서는 완벽하게 부드러 우며 Firefox와 Safari에서는 거의 완벽합니다. IE에서 테스트되지 않았습니다.
function newTab(url)
{
var tab=window.open("");
tab.document.write("<!DOCTYPE html><html>"+document.getElementsByTagName("html")[0].innerHTML+"</html>");
tab.document.close();
window.location.href=url;
}
바이올린 : http://jsfiddle.net/tFCnA/show/
설명 :
창 A1과 B1과 웹 사이트 A2와 B2가 있다고 가정 해 보겠습니다.
B1에서 B2를 연 다음 A1로 돌아가는 대신 A1에서 B2를 열고 B1에서 A2를 다시 엽니 다.
(작동하게 만드는 또 다른 점은 사용자가 A2를 다시 다운로드하도록 만들지 않는다는 것입니다. 4 행 참조)
당신이 유일하게 할 수있다는 하지 않습니다 같은 새 탭은 메인 페이지 전에 열립니다이다.
다음은 포커스가있는 새 탭에서 유효한 URL을 탐색하는 완전한 예입니다.
HTML :
<div class="panel">
<p>
Enter Url:
<input type="text" id="txturl" name="txturl" size="30" class="weburl" />
<input type="button" id="btnopen" value="Open Url in New Tab" onclick="openURL();"/>
</p>
</div>
CSS :
.panel{
font-size:14px;
}
.panel input{
border:1px solid #333;
}
자바 스크립트 :
function isValidURL(url) {
var RegExp = /(ftp|http|https):\/\/(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?/;
if (RegExp.test(url)) {
return true;
} else {
return false;
}
}
function openURL() {
var url = document.getElementById("txturl").value.trim();
if (isValidURL(url)) {
var myWindow = window.open(url, '_blank');
myWindow.focus();
document.getElementById("txturl").value = '';
} else {
alert("Please enter valid URL..!");
return false;
}
}
또한 http://codebins.com/codes/home/4ldqpbw 의 솔루션으로 저장소를 만들었습니다 .