سؤال

أنا أحاول أن "القوة" سفاري أو IE7 لفتح صفحة جديدة باستخدام علامة تبويب جديدة.

برمجيا أعني شيئا مثل:

window.open('page.html','newtaborsomething');
هل كانت مفيدة؟

المحلول

ولا يمكنك التحكم مباشرة هذا، لأنه خيار تسيطر عليها مستخدمو Internet Explorer.

وصفحات فتح باستخدام Window.open مع اسم إطار آخر سوف تفتح لك نافذة متصفح جديد مثل المنبثقة، <م> أو فتح في علامة تبويب جديدة، إذا تكوين المستخدم المتصفح للقيام بذلك.

نصائح أخرى

يمكنك في فايرفوكس يعمل إضافة السمة target="_newtab" إلى مرساة إلى القوة فتح علامة تبويب جديدة.

<a href="some url" target="_newtab">content of the anchor</a>

في جافا سكريبت يمكنك استخدام

window.open('page.html','_newtab');

قال انا اتفق جزئيا مع سام.يجب أن لا قوة المستخدم إلى فتح صفحات جديدة أو علامة تبويب جديدة دون أن تظهر لهم لمحة عن ما سيحدث قبل النقر فوق الارتباط.

اسمحوا لي أن أعرف ما اذا كان يعمل على متصفح آخر أيضا (أنا لم يكن لديك فرصة لمحاولة على متصفح آخر من فايرفوكس في هذه اللحظة).

تحرير:وأضاف مرجعا ie7 ربما هذا الرابط يمكن أن تكون مفيدة
http://social.msdn.microsoft.com/forums/en-US/ieextensiondevelopment/thread/951b04e4-db0d-4789-ac51-82599dc60405/

وتلك التي كنت تحاول استخدام ما يلي:

window.open('page.html', '_newtab');

وينبغي أن ننظر حقا في الأسلوب window.open.

وجميع تقومون به هو قول متصفح لفتح نافذة جديدة باسم "_newtab" وتحميل page.html فيه. كل صفحة جديدة قمت بتحميل سيتم تحميل في هذا الإطار. ومع ذلك، إذا كان المستخدم لديه مجموعة المتصفح لفتح صفحات جديدة في علامات التبويب الجديدة بدلا من نوافذ جديدة، فإنه سيتم فتح علامة تبويب. بغض النظر، فمن باستخدام نفس اسم النافذة أو علامة التبويب.

إذا كنت تريد صفحات مختلفة لفتح في النوافذ المختلفة أو علامات التبويب سيكون لديك لتغيير الاسم من النافذة / علامة تبويب جديدة إلى شيء آخر مثل:

window.open('page2.html', '_newtab2');

وبالطبع يمكن أن يكون اسما للنافذة / علامة تبويب جديدة أي اسم مثل page1، page2، page3، الخ بدلا من _newtab2.

والامر متروك للمستخدم ما إذا كانوا يريدون استخدام علامات تبويب جديدة أو نوافذ جديدة، فإنه ليس من أعمال المطور لتعديل هذا السلوك. أنا لا أعتقد أنك تستطيع أن تفعل ذلك.

والحيوانات الأليفة غيظ من الألغام - أنا أكره عندما تجبر لي مواقع لفتح في نافذة / علامة تبويب جديدة - أنا قادر تماما على اتخاذ ذلك القرار لنفسي. ولا سيما عندما يفعلون ذلك في جافا سكريبت - وهذا هو غير مفيد حقا

ولقد حاولت بالفعل مثل

var open_link = window.open('','_blank');
open_link.location="somepage.html";

وتبين لي في كروم،

window.open('page.html','_newtab')

وستعمل مرة واحدة فقط.

ويمكنك استخدام:

window.open(ct.getNewHref(),'_newtab' + Math.floor(Math.random()*999999));

لفتح عدة علامات تبويب جديدة.

وكود يمكنني استخدامها مع مسج:

$("a.btn_external").click(function() {
    url_to_open = $(this).attr("href");
    window.open(url_to_open, '_blank');
    return false;
});

وهذا هو المفيد التمييز بين النقر أحداث أحد الوالدين في الطفل. باستخدام هذا الأسلوب، الذي لا يؤدي الحدث انقر فوق الأصل.

إذا أردت يمكنك استخدام هذا الأسلوب، وهو hacky قليلا، ولكن من شأنه أن يوفر الوظائف المطلوبة:

jQuery('<a/>', {
    id: 'foo',
    href: 'http://google.com',
    title: 'Become a Googler',
    rel: 'external',
    text: 'Go to Google!',
    target:'_blank',
    style:'display:none;'
}).appendTo('#mySelector');

$('#foo').click()

هذا يعمل 100%

window.open('http://www.google.com/','_newtab' + Date.now());

وهذا قد يعمل إذا كان يمكنك استدعاء ملف دفعي (I استخدام فب مع XP SP2 وIE8 ... يمكنك محاولة IE7، دونو). استخدام ما يلي (أو ما شابه) في ملف .bat لفتح Windows: بدء "" C: \ Progra تقريبا 1 \ متدرب ~ 1 \ IEXPLORE "http://www.site.com". ليس هناك مسافة بين علامة اقتباس وC: \ Progr ... الخ في مرحلة ما، وهذا قد تبدأ في فتح نوافذ جديدة (أي الهدف = "_ فارغ") بدلا من علامات تبويب جديدة، ولكنها تعمل إلى حد ما. لم تختبر على نطاق واسع. لاستخدام هذا في ملف دفعي منتظم (CMD.EXE)، وربما كنت بحاجة إلى أن يكون نافذة مفتوحة بالفعل. مجرد تقاسم شيء أنا تعثرت عبر. EDITED للتوضيح.

<a href="http://www.google.com/" target="_self">New Tab Example</a>

ويعمل في IE7.

والتحيات،

وجلين

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top