නව ටැබ් එකක URL එකක් විවෘත කරන්න (නව කවුළුවක් නොවේ)


2120

උත්පතන කවුළුවකට වඩා වෙනස්ව මම නව ටැබ් එකක URL එකක් විවෘත කිරීමට උත්සාහ කරමි .

අදාළ ප්‍රශ්න මම දැක ඇත්තෙමි.

window.open(url,'_blank');
window.open(url);

නමුත් ඒ කිසිවක් මා වෙනුවෙන් වැඩ කළේ නැත, බ්‍රව්සරය තවමත් උත්පතන කවුළුවක් විවෘත කිරීමට උත්සාහ කළේය.


86
මෙය සාමාන්‍යයෙන් මනාපයකි. සමහර අය කවුළු වලට කැමතියි (සහ මෙම හැසිරීම දරුණු ලෙස ආරක්ෂා කරයි), සමහර ටැබ් (සහ මෙම හැසිරීම දරුණු ලෙස ආරක්ෂා කරයි). එබැවින් ඔබ සාමාන්‍යයෙන් රසයක් ලෙස සලකනු ලබන හැසිරීමක් පරාජය කරනු ඇත.
ජරෙඩ් ෆරීෂ්

42
ඔබේ බ්‍රව්සරය සහ කවුළු එදිරිව ටැබ් ගැන ජාවාස්ක්‍රිප්ට් කිසිවක් නොදන්නා බැවින් නව කවුළුවක් විවෘත කරන්නේ කෙසේද යන්න තීරණය කිරීම බ්‍රව්සරයට සැබවින්ම අවශ්‍ය වේ.
ඇන්ඩ්‍රි

4
උත්පතන වලට වඩා නව ටැබ් එකක පෙන්වීමට ක්‍රෝම් වින්‍යාසගත කරන්නේ කෙසේද?
මාර්ක්

8
Gmail මෙය කෙසේ හෝ කරයි, අවම වශයෙන් Chrome හි. Shift + ඊමේල් පේළියක් මත ක්ලික් කර ඔබ එම විද්‍යුත් තැපෑල නව කවුළුවකින් විවෘත කරයි. Ctrl + ක්ලික් කර ඔබ එය නව පටිත්තකින් විවෘත කරන්න. එකම ගැටළුව: ජීමේල් හි අපැහැදිලි කේතය හෑරීම යනු PITA
Sergio

48
Er සර්ජියෝ, එය ඕනෑම සබැඳියක පෙරනිමි බ්‍රව්සර හැසිරීමයි. (අවම වශයෙන් ක්‍රෝම් සහ ෆයර්ෆොක්ස් සඳහා.) ජීමේල් සමඟ කිසිදු සම්බන්ධයක් නැත.
Qtax

Answers:


935

කතුවරයෙකුට කළ හැකි කිසිවක් නව කවුළුවක් වෙනුවට නව පටිත්තකින් විවෘත කිරීමට තෝරා ගත නොහැක; එය පරිශීලක මනාපයකි . (බොහෝ බ්‍රව්සර්වල පෙරනිමි පරිශීලක මනාපය නව ටැබ් සඳහා වන බව සලකන්න, එබැවින් එම මනාපය වෙනස් කර නොමැති බ්‍රව්සරයක සුළු පරීක්ෂණයක් මෙය පෙන්නුම් නොකරයි.)

CSS3 ඉලක්කගත-නව යෝජනා කළ නමුත් පිරිවිතර අත්හැර දමන ලදී .

මෙම ආපසු සත්යයක් නො වේ; තෙවන තර්කයේ කවුළුව සඳහා මානයන් නියම කිරීමෙන් window.open(), ටැබ් සඳහා මනාපය ලැබෙන විට ඔබට නව කවුළුවක් අවුලුවාලිය හැකිය.


42
LiAliHaideri නව ටැබ් / කවුළුව විවෘත වන ආකාරය සමඟ ජාවාස්ක්‍රිප්ටයට කිසිදු සම්බන්ධයක් නැත. ඒ සියල්ල ඔබගේ බ්‍රව්සරයේ සැකසුම් අනුව තීරණය වේ. භාවිතා window.openකිරීම බ්‍රව්සරයට අළුත් දෙයක් විවෘත කරන ලෙස පවසන අතර, බ්‍රව්සරය එහි සැකසුම් තුළ තෝරාගත් දේ විවෘත කරයි - ටැබ් හෝ කවුළුව. ඔබ අත්හදා බැලූ බ්‍රව්සර් තුළ, ටැබ් එකක් වෙනුවට නව කවුළුවක විවෘත කිරීමට සැකසුම් වෙනස් කරන්න, එවිට අනෙක් අයගේ විසඳුම් වැරදියි.
ඉයන්

241
යමක් පැවසීමට වඩා අනෙක් අයගේ කාලය නාස්ති කරන කරුණු දෙකක් කළ නොහැකිය. (1) කළ නොහැකි දෙයක් ඔවුන්ට පැවසීම කළ හැකිය . (2) නිශ්ශබ්දව සිටීම සහ කළ නොහැකි දෙයක් කිරීමට ක්‍රමයක් සෙවීමට ඔවුන්ට ඉඩ දීම.
ක්වෙන්ටින්

8
Up කප්කේක් - ප්‍රලේඛනය සාමාන්‍යයෙන් නොපවතින අංග විස්තර කිරීමට කරදර වන්නේ නැත. evernote.com/shard/s3/sh/428d2d68-39f9-491d-8352-8a9c217b67d7/…
ක්වෙන්ටින්

9
E නීල් - බොහෝ දෙනෙකුට දැන ගැනීමට අවශ්‍ය මාතෘකාවක් පිළිබඳව එය සාරාංශගත වන බැවිනි.
ක්වෙන්ටින්

4
කතුවරුන්ට දේවල් කළ හැකිය (බොහෝ විට විවිධ කේත ලිවීම). ඒ කිසිවක් කවුළුවක් වෙනුවට ටැබ් එකක් අවුලුවන්නේ නැත.
ක්වෙන්ටින්

1742

මෙය උපක්‍රමයක්,

function openInNewTab(url) {
  var win = window.open(url, '_blank');
  win.focus();
}

බොහෝ අවස්ථාවන්හීදී, onclickඋත්පතන අවහිර කිරීම් වැළැක්වීම සඳහා සබැඳිය සඳහා මෙය සෘජුවම හසුරුවන්නා තුළ සිදුවිය යුතු අතර පෙරනිමි "නව කවුළු" හැසිරීම. ඔබට එය මේ ආකාරයෙන් කළ හැකිය, නැතහොත් ඔබේ DOMවස්තුවට සිදුවීම් සවන්දෙන්නෙකු එක් කිරීමෙන් .

<div onclick="openInNewTab('www.test.com');">Something To Click On</div>

http://www.tutsplanet.com/open-url-new-tab-using-javascript/


117
වැඩ කරන්නේ නෑ. ලිපින තීරුවේ දකුණු පසින් පණිවිඩයක් ලැබුණි : උත්පතන අවහිර කර ඇත. ඊට පස්සේ මම උත්පතන වලට ඉඩ දුන්නා. Voilà, එය විවෘත වන්නේ උත්පතන තුළ මිස ටැබ් එකකින් නොවේ ! OS X Lion හි Chrome 22.0.1229.94.
nalply

39
@ b1naryatr0phy එයට හේතුව ඔබ එය නිසි ලෙස පරීක්‍ෂා නොකිරීමයි. ඔබගේ බ්‍රව්සරයේ සැකසුම් වෙනස් කරන්න. එය ටැබ් එකක හෝ කවුළුවකින් විවෘත වේද යන්න තීරණය වන්නේ ඔබගේ බ්‍රව්සරයේ සැකසුම් අනුව ය. නව කවුළුව / පටිත්ත විවෘත කරන්නේ කෙසේදැයි තේරීමට window.open (හෝ ඕනෑම ජාවාස්ක්‍රිප්ට්) ඇමතීමෙන් ඔබට කළ හැකි කිසිවක් නැත.
ඉයන්

ප්‍රශ්නය: මම ප්‍රොටෝකෝලය නොමැතිව url සැකසුවෙමි (උදාහරණයක් ලෙස my.site.com/Controller/Index). එහි ප්‍රති As ලයක් ලෙස වත්මන් පිටුවේ url වැනි යූආර්එල් මඟින් නව කවුළුවක් (ටැබ්) ලබා ගනිමි (මම OpenInNewTab ශ්‍රිතය භාවිතා කරන තැන සිට) සහ ක්‍රියාකාරී url වෙත යොමු කරමි. ප්‍රොටෝකෝලය සමඟ නිවැරදි සබැඳියකින් විවෘත වේ. මන්ද?
user2167382

2
var win = window.open (url, '_blank'); window.open () සඳහා '_blank' අවශ්‍ය නොවේ, දෙවන පරාමිතිය strWindowName, සඳහා: නව කවුළුව සඳහා සංගීත නාමයක්. <a> හෝ <form> මූලද්‍රව්‍යයක ඉලක්ක ගුණාංගය භාවිතා කරමින් නම සබැඳි සහ ආකෘතිවල ඉලක්කය ලෙස භාවිතා කළ හැකිය. නමේ කිසිදු සුදු පැහැති අක්ෂර අඩංගු නොවිය යුතුය. StrWindowName නව කවුළුවේ මාතෘකාව සඳහන් නොකරන බව සලකන්න.
hydRAnger

සෑන්ඩ්බොක්ස් සහිත අයිෆ්‍රේම් එකක් නොමැතිව මෙය නව ටැබ් එකක් විවෘත කිරීමට ක්‍රමයක් තිබේද? මම මෙය භාවිතා කරන විට මට CORS දෝෂ ඇතිවේ. Document.domain අගය iframe ලෙස විවෘත කර ඇති බැවින් එය වෙනස් නොවේ.
Ids van der Zee

381

window.open()සත්‍ය ක්ලික් කිරීමේ සිද්ධියේදී එය සිදු නොවන්නේ නම් නව පටිත්තකින් විවෘත නොවේ. ලබා දී ඇති උදාහරණයේ සත්‍ය ක්ලික් සිදුවීම මත URL විවෘත වේ. පරිශීලකයාට බ්‍රව්සරයේ සුදුසු සැකසුම් තිබේ නම් මෙය ක්‍රියාත්මක වේ.

<a class="link">Link</a>
<script  type="text/javascript">
     $("a.link").on("click",function(){
         window.open('www.yourdomain.com','_blank');
     });
</script>

ඒ හා සමානව, ඔබ ක්ලික් කිරීමේ කාර්යය තුළ අජැක්ස් ඇමතුමක් කිරීමට උත්සාහ කරන්නේ නම් සහ සාර්ථකත්වය පිළිබඳ කවුළුවක් විවෘත කිරීමට අවශ්‍ය නම්, ඔබ async : falseවිකල්ප කට්ටලය සමඟ අජැක්ස් ඇමතුම කරන බවට සහතික වන්න .


28
මෙය නිවැරදි පිළිතුර ලෙස සලකුණු කිරීම සතුටක්. ක්‍රෝම් v26 (වින්ඩෝස්) සමඟ මගේ පරීක්ෂණ වලින් තහවුරු වන්නේ කේතය බොත්තමක් ක්ලික් කරන්නෙකු තුළ තිබේ නම් එය නව ටැබ් එකක් විවෘත කරන අතර කේතය ක්‍රමලේඛගතව ක්‍රියාත්මක කරන්නේ නම්, උදා: කොන්සෝලය වෙතින් එය නව කවුළුවක් විවෘත කරයි.
සයිබර් ෆොනික්

2
An පෙරනිමි සැකසුම් සහිත බ්‍රව්සර් පිළිබඳ මගේ පරීක්ෂණයෙන්, ඉහත පිළිතුරු නොලැබෙන අවස්ථාවන්හිදී මෙම පිළිතුර ක්‍රියාත්මක වේ. "ඔබට කළ හැකි කිසිවක් නැත" යනුවෙන් පිළිගත් පිළිතුර සත්‍ය වන්නේ පරිශීලකයා පෙරනිමි සැකසුම් වෙනස් කළ විට පමණි.
ගාෆීල්ඩ්

AnIan පැහැදිලිකම සඳහා, පරිශීලක සැකසුම් පිළිබඳ අනතුරු ඇඟවීමේදී මම මෙය සඳහන් කළෙමි. "පරිශීලකයාට බ්‍රව්සරයේ සුදුසු සැකසුම් තිබේ නම් මෙය ක්‍රියාත්මක වේ." මම හිතන්නේ බහුතරයක් පරිශීලකයින් බ්‍රව්සර් සැකසුම් වෙනස් නොකරන අතර මෙම පිළිතුර ඔවුන්ගෙන් බහුතරයක් සඳහා ක්‍රියා කරයි.
වෙන්කට් කෝත්‍රා

async: falseChrome හි ක්‍රියා නොකරයි. ඇමතුමෙන් නව කවුළුවක් විවෘත කිරීම සඳහා, ඔබ මුලින්ම HTTP ඉල්ලීම යැවීමට පෙර හිස් කවුළුවක් විවෘත කර පසුව එය යාවත්කාලීන කළ යුතුය. මෙන්න හොඳ කඩුල්ලක් .
attacomsian

251

window.open සියලුම බ්‍රව්සර්වල නව ටැබ් එකක උත්පතන විශ්වාසදායක ලෙස විවෘත කළ නොහැක

විවිධ බ්‍රව්සර් වල හැසිරීම window.open විවිධ ආකාරවලින් ක්‍රියාත්මක කරයි, විශේෂයෙන් පරිශීලකයාගේ බ්‍රව්සර් මනාපයන් සම්බන්ධයෙන්. window.openඉන්ටර්නෙට් එක්ස්ප්ලෝරර්, ෆයර්ෆොක්ස් සහ ක්‍රෝම් හරහා එකම හැසිරීම සත්‍යයක් වනු ඇතැයි අපේක්ෂා කළ නොහැක , මන්ද ඔවුන් පරිශීලකයාගේ බ්‍රව්සර් මනාපයන් හසුරුවන විවිධ ක්‍රම නිසාය.

උදාහරණයක් ලෙස, ඉන්ටර්නෙට් එක්ස්ප්ලෝරර් (11) පරිශීලකයින්ට නව කවුළුවක හෝ නව ටැබ් එකක උත්පතන විවෘත කිරීමට තෝරා ගත හැකිය , ක්වෙන්ටින්ගේ පිළිතුරෙහි සඳහන් කර ඇති පරිදි, ඉන්ටර්නෙට් එක්ස්ප්ලෝරර් 11 පරිශීලකයින්ට නිශ්චිත ආකාරයකින් උත්පතන විවෘත කිරීමට බල කළ නොහැක .window.open

ෆයර්ෆොක්ස් (29) භාවිතා කරන්නන් සඳහා, භාවිතා window.open(url, '_blank') කිරීම ඔවුන්ගේ බ්‍රව්සරයේ ටැබ් මනාපයන් මත රඳා පවතී, නමුත් පළල සහ උස සඳහන් කිරීමෙන් නව කවුළුවක උත්පතන විවෘත කිරීමට ඔබට තවමත් බල කළ හැකිය (පහත “ක්‍රෝම් ගැන කුමක් ද?” කොටස බලන්න).

නිරූපණය

ඔබගේ බ්‍රව්සරයේ සැකසුම් වෙත ගොස් නව කවුළුවක උත්පතන විවෘත කිරීමට එය වින්‍යාස කරන්න.

ඉන්ටර්නෙට් එක්ස්ප්ලෝරර් (11)

ඉන්ටර්නෙට් එක්ස්ප්ලෝරර් සැකසුම් සංවාද 1

ඉන්ටර්නෙට් එක්ස්ප්ලෝරර් ටැබ් සැකසුම් සංවාදය

පරීක්ෂණ පිටුව

ඉහත පෙන්වා ඇති පරිදි නව කවුළුවක උත්පතන විවෘත කිරීම සඳහා ඉන්ටර්නෙට් එක්ස්ප්ලෝරර් (11) සැකසූ පසු, පරීක්ෂා කිරීමට පහත පරීක්ෂණ පිටුව භාවිතා කරන්න window.open:

<!DOCTYPE html>
<html>
  <head>
    <title>Test</title>
  </head>

  <body>
    <button onclick="window.open('https://stackoverflow.com/q/4907843/456814');">
      <code>window.open(url)</code>
    </button>
    <button onclick="window.open('https://stackoverflow.com/q/4907843/456814', '_blank');">
      <code>window.open(url, '_blank')</code>
    </button>
  </body>
</html>

උත්පතන විවෘත වන්නේ නව කවුළුවක මිස නව පටිත්තක නොවන බව නිරීක්ෂණය කරන්න .

ෆයර්ෆොක්ස් (29) හි ඇති ටැබ් මනාපයන් නව කවුළුවලට සකසා ඇති ඉහත ස්නිපෙට් පරීක්ෂා කළ හැකි අතර එම ප්‍රති .ලම බලන්න.

Chrome ගැන කුමක් කිව හැකිද? එය window.openඉන්ටර්නෙට් එක්ස්ප්ලෝරර් (11) සහ ෆයර්ෆොක්ස් (29) ට වඩා වෙනස් ලෙස ක්‍රියාත්මක කරයි.

මට 100% විශ්වාස නැත, නමුත් 34.0.1847.131 mනව කවුළුවක හෝ නව ටැබ් එකක (ෆයර්ෆොක්ස් සහ ඉන්ටර්නෙට් එක්ස්ප්ලෝරර් වැනි) උත්පතන විවෘත කළ යුතුද නැද්ද යන්න තෝරා ගැනීමට පරිශීලකයාට භාවිතා කළ හැකි කිසිදු සැකසුමක් ක්‍රෝම් (අනුවාදය ) නොපෙනේ. ඇත). උත්පතන කළමනාකරණය සඳහා මම ක්‍රෝම් ප්‍රලේඛනය පරික්ෂා කළ නමුත් එහි එවැනි දෙයක් ගැන කිසිවක් සඳහන් කර නැත.

එසේම, නැවත වරක්, විවිධ බ්‍රව්සර් වෙනස් ආකාරයකින් හැසිරීම ක්‍රියාත්මක කරන බව පෙනේ window.open . ක්‍රෝම් සහ ෆයර්ෆොක්ස් හි, පළල සහ උස නියම කිරීමෙන් පරිශීලකයෙකු ෆයර්ෆොක්ස් (29) නව ටැබ් එකක නව කවුළු විවෘත කිරීමට සකසා ඇති විට පවා උත්පතන බල කිරීමට බල කෙරෙනු ඇත ( ජාවාස්ක්‍රිප්ට් සඳහා පිළිතුරු වල සඳහන් පරිදි නව කවුළුවක විවෘත වේ, ටැබ් නොවේ ) :

<!DOCTYPE html>
<html>
  <head>
    <title>Test</title>
  </head>

  <body>
    <button onclick="window.open('https://stackoverflow.com/q/4907843/456814', 'test', 'width=400, height=400');">
      <code>window.open(url)</code>
    </button>
  </body>
</html>

කෙසේ වෙතත්, ඉහත සඳහන් කේත ස්නිපටය සෑම විටම ඉන්ටර්නෙට් එක්ස්ප්ලෝරර් 11 හි නව ටැබ් එකක් විවෘත කරනු ඇත, පරිශීලකයින් ඔවුන්ගේ බ්‍රව්සර් මනාපයන් ලෙස ටැබ් සකසන්නේ නම්, පළල සහ උස සඳහන් නොකිරීම පවා නව කවුළු උත්පතන සඳහා බල කරනු ඇත.

එබැවින් window.openක්‍රෝම් හි හැසිරීම onclickසිදුවීමක් භාවිතා කරන විට නව ටැබ් එකක උත්පතන විවෘත කිරීම, බ්‍රව්සර් කොන්සෝලයෙන් භාවිතා කරන විට ඒවා නව කවුළුවල විවෘත කිරීම ( වෙනත් පුද්ගලයින් විසින් සටහන් කර ඇති පරිදි ) සහ ඒවා නව කවුළුවල විවෘත කිරීම පළල සහ උසකින් නියම කර ඇත.

සාරාංශය

window.open පරිශීලකයන්ගේ බ්‍රව්සර් මනාපයන් සම්බන්ධයෙන් විවිධ බ්‍රව්සර් වෙනස් ලෙස හැසිරීම ක්‍රියාත්මක කරයි . window.openඉන්ටර්නෙට් එක්ස්ප්ලෝරර්, ෆයර්ෆොක්ස් සහ ක්‍රෝම් හරහා එකම හැසිරීම සත්‍යයක් වනු ඇතැයි අපේක්ෂා කළ නොහැක , මන්ද ඔවුන් පරිශීලකයාගේ බ්‍රව්සර් මනාපයන් හසුරුවන විවිධ ක්‍රම නිසාය.

අමතර කියවීම


13
ඔබ ප්‍රශ්නයට පිළිතුරු නොදුන් අතර, window.open නොගැලපෙන බව ඔබ ඔප්පු කර ඇත.
BentOnCoding

227

එක් ලයිනර්:

Object.assign(document.createElement('a'), { target: '_blank', href: 'URL_HERE'}).click();

එය අථත්ය aමූලද්රව්යයක් නිර්මාණය කරයි , එය ලබා දෙයි, target="_blank"එබැවින් එය නව පටිත්තකින් විවෘත වේ, එය නිසි ලෙස ලබා දී එය url hrefක්ලික් කරන්න.

ඔබට අවශ්‍ය නම්, ඒ මත පදනම්ව ඔබට යම් ශ්‍රිතයක් නිර්මාණය කළ හැකිය:

function openInNewTab(href) {
  Object.assign(document.createElement('a'), {
    target: '_blank',
    href,
  }).click();
}

එවිට ඔබට එය භාවිතා කළ හැකිය:

openInNewTab("https://google.com"); 

වැදගත් සටහනක්:

openInNewTab(මෙන්ම මෙම පිටුවේ ඇති වෙනත් විසඳුමක්) පරිශීලක ක්‍රියා ඇමතුම් ලබා ගැනීමේදී කැඳවිය යුතුය - උදා. ඇතුළත ක්ලික් කිරීමේ සිදුවීම (ඇමතුම් ආපසු ගැනීමේ ක්‍රියාවලියේදී කෙලින්ම අවශ්‍ය නොවේ, නමුත් ක්ලික් කිරීමේ ක්‍රියාවලියේදී).

ඔබ එය කිසියම් අහඹු මොහොතක අතින් අමතන්නේ නම් (උදා: කාල පරාසයක් තුළ හෝ සේවාදායක ප්‍රතිචාරයෙන් පසුව) - එය බ්‍රව්සරය විසින් අවහිර කරනු ඇත (එය ආරක්ෂක අවදානමක් ලෙස අර්ථවත් වන අතර එය ඉතා දුර්වල පරිශීලක අත්දැකීමට හේතු විය හැක )


8
ඔබට ස්තුතියි. ඔබේ පිරිසිදු-ජේඑස් හි අස්ථානගත වූ කැබැල්ලක් ඇත - ලූක් ඇල්ඩර්ටන් ලියා ඇති පරිදි (පහත බලන්න), ඔබ විසින් සාදන ලද අංගයක් ලේඛන ශරීරයට ඇමිණිය යුතුය, ඔබේ කේතයේ එය අවම වශයෙන් ෆයර්ෆොක්ස් 37 හි හිස්ව පවතින අතර එය කිසිවක් නොකරයි .
greenoldman

4
cmcginniwa මේ වගේ ඕනෑම ක්‍රියාවක් - මූසික ක්ලික් වැනි පරිශීලක ක්‍රියාවෙන් අවුලුවනු නොලැබුවහොත් උත්පතන-අවහිර කරන්නා බවට පත්වේ. පරිශීලක ක්‍රියාවකින් තොරව ඔබට ජාවාස්ක්‍රිප්ට් සමඟ ඕනෑම යූආර්එල් එකක් විවෘත කළ හැකි යැයි සිතන්න - එය තරමක් භයානක වනු ඇත. ක්ලික් කිරීමේ ක්‍රියාකාරිත්වය වැනි සිදුවීමක් තුළ ඔබ මෙම කේතය තැබුවහොත් - එය හොඳින් ක්‍රියාත්මක වනු ඇත - මෙහි යෝජිත සියලු විසඳුම් සමඟ එය සමාන වේ.
pie6k

4
ඔබට පහත පරිදි ඔබේ කේතය සරල කළ හැකිය: $('<a />',{'href': url, 'target', '_blank'}).get(0).click();
shaedrich

5
sn ෂෙඩ්රිච් ඔබේ දේවානුභාවයෙන් දේවානුභාවයෙන් මම jquery නොවන එක්-ලයිනර් එක් කළෙමි:Object.assign(document.createElement('a'), { target: '_blank', href: 'URL_HERE'}).click();
pie6k

ed shaedrich- ඔබ විසින් සපයන ලද කේතයට පිටුවට සබැඳියක් ඇති පා text යක් ඇතුළත් කරන්නේ කෙසේද?
පරිශීලක 12379095

91

ඔබ භාවිතා කරන්නේ නම් window.open(url, '_blank'), එය Chrome හි අවහිර කරනු ඇත (උත්පතන අවහිර කරන්නා).

මේක උත්සාහ කරන්න:

//With JQuery

$('#myButton').click(function () {
    var redirectWindow = window.open('http://google.com', '_blank');
    redirectWindow.location;
});

පිරිසිදු ජාවාස්ක්‍රිප්ට් සමඟ,

document.querySelector('#myButton').onclick = function() {
    var redirectWindow = window.open('http://google.com', '_blank');
    redirectWindow.location;
};

නමුත් මෙම ප්රශ්නයේ දී, ඔවුන් අඩවි කතුවරයා ගැන සඳහන් නොකරයි. නව කවුළුවක හෝ නව පටිත්තක url එකක් විවෘත කිරීමට පමණක් අවශ්‍යය. මෙය බ්‍රව්සරය මත රඳා පවතී. කතුවරයා ගැන කරදර වීමට අපට අවශ්‍ය නැත. කරුණාකර එම ප්‍රහේලිකාව පරීක්ෂා කරන්න. එය ක්‍රියාත්මක වේ
මොහොමඩ් සේෆර්

එය js fiddle සහ plunker මත ක්‍රියා නොකළ නමුත් ඔබ html ගොනුවක් සාදන විට ක්‍රියා කරන බව සොයාගෙන ඇත. එයට හේතුව js fiddle, ප්‍රතිදානය iframe හි දර්ශනය වීමයි, එබැවින් නව කවුළුව අවහිර වී ඇතthe request was made in a sandboxed frame whose 'allow-popups' permission is not set
මොහොමඩ් සේෆර්

68

ස්ටීවන් ස්පීල්බර්ග්ගේ පිළිතුර විස්තාරනය කිරීම සඳහා, මම මෙය කළේ එවැනි අවස්ථාවකදී ය:

$('a').click(function() {
  $(this).attr('target', '_blank');
});

මේ ආකාරයෙන්, බ්‍රවුසරය සබැඳිය අනුගමනය කිරීමට පෙර මම ඉලක්ක ගුණාංගය සකසමි, එම නිසා එය නව ටැබ් එකක හෝ කවුළුවක සබැඳිය විවෘත කරනු ඇත ( පරිශීලකයාගේ සැකසුම් මත රඳා පවතී ).

JQuery හි එක් පේළියේ උදාහරණයක්:

$('a').attr('target', '_blank').get(0).click();
// The `.get(0)` must be there to return the actual DOM element.
// Doing `.click()` on the jQuery object for it did not work.

දේශීය බ්‍රව්සරයේ DOM API භාවිතා කිරීමෙන්ද මෙය කළ හැකිය:

document.querySelector('a').setAttribute('target', '_blank');
document.querySelector('a').click();

58

මම පහත සඳහන් දෑ භාවිතා කරන අතර එය ඉතා හොඳින් ක්‍රියාත්මක වේ!

window.open(url, '_blank').focus();

2
බ්‍රව්සර් සැකසුම් අනුව මෙය නව පටිත්තක හෝ කවුළුවක විවෘත වේ. ප්‍රශ්නය විශේෂයෙන් නව කවුළුවක් සඳහා මනාපයන් වුවද නව ටැබ් එකක විවෘත කිරීම පිළිබඳව වේ.
ක්වෙන්ටින්

19

මම හිතන්නේ ඔබට මෙය පාලනය කළ නොහැක. නව කවුළුවක සබැඳි විවෘත කිරීම සඳහා පරිශීලකයා ඔවුන්ගේ බ්‍රව්සරය සකසා ඇත්නම්, ඔබට නව ටැබයක සබැඳි විවෘත කිරීමට බල කළ නොහැක.

ජාවාස්ක්‍රිප්ට් ටැබ් එකකින් නොව නව කවුළුවකින් විවෘත වේ


19

සිත්ගන්නා කරුණක් නම්, ක්‍රියාව පරිශීලකයා විසින් ක්‍රියාවට නංවා නොමැති නම් (බොත්තමක් හෝ වෙනත් දෙයක් ක්ලික් කිරීම) හෝ එය අසමමුහුර්ත නම්, නව ටැබය විවෘත කළ නොහැකි ය, උදාහරණයක් ලෙස, මෙය නව පටිත්තෙහි විවෘත නොවනු ඇත:

$.ajax({
    url: "url",
    type: "POST",
    success: function() {
        window.open('url', '_blank');              
    }
});

නමුත් මෙය බ්‍රව්සර් සැකසුම් මත පදනම්ව නව පටිත්තකින් විවෘත විය හැකිය:

$.ajax({
    url: "url",
    type: "POST",
    async: false,
    success: function() {
        window.open('url', '_blank');              
    }
});

2
මෙය ෆයර්ෆොක්ස් 28, ක්‍රෝම් 34 බී සහ සෆාරි 7.0.2 හි සියලුම කොටස් සැකසුම් වල උත්පතන ලෙස අවහිර වෙමින් පවතී. :(
ස්ටීව් මීස්නර්

1
"ක්‍රියාව පරිශීලකයා විසින් ක්‍රියාවට නංවා නොමැති නම් (බොත්තමක් හෝ වෙනත් දෙයක් ක්ලික් කිරීම) හෝ එය අසමමුහුර්ත නම්" නව ටැබ් විවෘත කළ නොහැක " - ක්‍රෝම් සම්බන්ධයෙන් සත්‍ය වේ, නමුත් සියලුම බ්‍රව්සර් වල සත්‍ය නොවේ. සුරකින්න <script>open('http://google.com')</script>වෙත .htmlගොනු කර නව Firefox හි මෑත අනුවාදය ස්ථාපනය එය විවෘත කරන්න; ෆයර්ෆොක්ස් නව ටැබ් එකකින් ගූගල් විවෘත කරන බව ඔබ නිරීක්ෂණය කරනු ඇත (සමහර විට ඔබ උත්පතන වලට ඉඩ දෙන ලෙස පැවසීමෙන් පසු), නව කවුළුවක් නොවේ.
මාර්ක් අමරි

13

[StrWindowFeatures] පරාමිතීන් මඟ හැරීමෙන් නව ටැබ් එකක් විවෘත වනු ඇත, බ්‍රව්සර් සැකසුම අභිබවා යන්න (බ්‍රව්සර් සැකසුම ජාවාස්ක්‍රිප්ට් තුරන් කරයි).

නව කවුළුව

var myWin = window.open(strUrl, strWindowName, [strWindowFeatures]);

නව පටිත්ත

var myWin = window.open(strUrl, strWindowName);

-- හෝ --

var myWin = window.open(strUrl);

11
(function(a){
document.body.appendChild(a);
a.setAttribute('href', location.href);
a.dispatchEvent((function(e){
    e.initMouseEvent("click", true, true, window, 0, 0, 0, 0, 0, true, false, false, false, 0, null);
    return e
}(document.createEvent('MouseEvents'))))}(document.createElement('a')))

11

ඔබට මෙය සමඟ උපක්‍රමයක් භාවිතා කළ හැකිය form:

$(function () {
    $('#btn').click(function () {
        openNewTab("http://stackoverflow.com")
        return false;
    });
});

function openNewTab(link) {
    var frm = $('<form   method="get" action="' + link + '" target="_blank"></form>')
    $("body").append(frm);
    frm.submit().remove();
}

jsFiddle ආදර්ශනය


4
ඔබ මෙම ක්‍රමවේදය අනුගමනය කරන්නේ නම්, යූආර්එල් හි විමසුම් පරාමිතීන් නොමැති බවට වග බලා ගන්න, මන්ද ඒවා පෝරමය ඉදිරිපත් කිරීමෙන් මඟ හැරෙනු ඇත. එක් විසඳුමක් නම් විමසුම් පරාමිතීන් තුළ ඇති සියලුම පරාමිතීන් සඳහා nameයතුරක් සහ valueවටිනාකමක් ඇති පෝරම මූලද්‍රව්‍යය තුළ සැඟවුණු ආදාන අංග ඇතුළත් කිරීමයි. ඉන්පසු පෝරමය ඉදිරිපත් කරන්න
මුදසිර් අලි

aපෝරමයක් වෙනුවට ටැගයකින් මෙය වඩාත් සරලව කළ හැකි අතර jQuery .click()ක්‍රමය භාවිතා කර එය ඉදිරිපත් කිරීමට හැකිය. මගේ පිළිතුර

10

ඔබ අභිරුචි ශ්‍රිතයකින් නව පටිත්තක් විවෘත කිරීමට උත්සාහ කරන්නේ නම් මෙය බ්‍රව්සර් සැකසුම් සමඟ කිසිදු සම්බන්ධයක් නැත .

මෙම පිටුවේ, ජාවාස්ක්‍රිප්ට් කොන්සෝලයක් විවෘත කර ටයිප් කරන්න:

document.getElementById("nav-questions").setAttribute("target", "_blank");
document.getElementById("nav-questions").click();

ඔබගේ සැකසුම් නොසලකා එය උත්පතන විවෘත කිරීමට උත්සාහ කරනු ඇත, මන්ද 'ක්ලික් කිරීම' පැමිණෙන්නේ අභිරුචි ක්‍රියාවකිනි.

සබැඳියක් සත්ය 'එක මත ක්ලික්' වගේ හැසිරෙන්න කිරීම සඳහා, ඔබ විසින් අනුගමනය කළ යුත්තේ @ spirinvladimir උපදෙස් හා ඇත්තටම එය නිර්මාණය:

document.getElementById("nav-questions").setAttribute("target", "_blank");
document.getElementById("nav-questions").dispatchEvent((function(e){
  e.initMouseEvent("click", true, true, window, 0, 0, 0, 0, 0,
                    false, false, false, false, 0, null);
  return e
}(document.createEvent('MouseEvents'))));

මෙන්න සම්පූර්ණ උදාහරණයකි ( jsFiddle හෝ ඒ හා සමාන සබැඳි සංස්කාරක මත එය උත්සාහ නොකරන්න, එය එතැන් සිට බාහිර පිටු වෙත හරවා යැවීමට ඉඩ නොදෙන බැවින්):

<!DOCTYPE html>
<html>
<head>
  <style>
    #firing_div {
      margin-top: 15px;
      width: 250px;
      border: 1px solid blue;
      text-align: center;
    }
  </style>
</head>
<body>
  <a id="my_link" href="http://www.google.com"> Go to Google </a>
  <div id="firing_div"> Click me to trigger custom click </div>
</body>
<script>
  function fire_custom_click() {
    alert("firing click!");
    document.getElementById("my_link").dispatchEvent((function(e){
      e.initMouseEvent("click", true, true, window, /* type, canBubble, cancelable, view */
            0, 0, 0, 0, 0,              /* detail, screenX, screenY, clientX, clientY */
            false, false, false, false, /* ctrlKey, altKey, shiftKey, metaKey */
            0, null);                   /* button, relatedTarget */
      return e
    }(document.createEvent('MouseEvents'))));
  }
  document.getElementById("firing_div").onclick = fire_custom_click;
</script>
</html>

1
Theandystratton.com/2012/w = window.open("placeholder"); $.ajax(...ajax call that returns the url...) success (...w.location = data.url...) අනුව මම කරන වෙනත් විසඳුමකට මම ගියෙමි
පෝල් ටොම්බ්ලින්

11
@FahadAbidJanjua එය නියත වශයෙන්ම නිවැරදි නොවේ . එය තවමත් බ්‍රව්සර් සැකසුම් මත රඳා පවතී. "අභිරුචි ක්‍රියාවක්" ටැබ් එකකට වඩා උත්පතන තුළ විවෘත විය යුතු බව ප්‍රකාශ කරන කිසිවක් HTML හෝ ජාවාස්ක්‍රිප්ට් පිරිවිතරයන්හි නොමැත. ඇත්ත වශයෙන්ම, මගේ වර්තමාන යන්ත්‍රයේ ඇති බ්‍රව්සර් කිසිවක් මෙම හැසිරීම පෙන්වන්නේ නැත.
nmclean

7
function openTab(url) {
  const link = document.createElement('a');
  link.href = url;
  link.target = '_blank';
  document.body.appendChild(link);
  link.click();
  link.remove();
}

1
බ්‍රව්සර් සැකසුම් අනුව මෙය නව පටිත්තක හෝ කවුළුවක විවෘත වේ. ප්‍රශ්නය විශේෂයෙන් නව කවුළුවක් සඳහා මනාපයන් වුවද නව ටැබ් එකක විවෘත කිරීම පිළිබඳව වේ.
ක්වෙන්ටින්

3

නැතහොත් ඔබට සම්බන්ධක අංගයක් සාදා එය ක්ලික් කරන්න ...

var evLink = document.createElement('a');
evLink.href = 'http://' + strUrl;
evLink.target = '_blank';
document.body.appendChild(evLink);
evLink.click();
// Now delete it
evLink.parentNode.removeChild(evLink);

මෙය කිසිදු උත්පතන අවහිර කරන්නන් විසින් අවහිර නොකළ යුතුය ... බලාපොරොත්තු සහගතව.


3

JQuery

$('<a />',{'href': url, 'target': '_blank'}).get(0).click();

ජේ

Object.assign(document.createElement('a'), { target: '_blank', href: 'URL_HERE'}).click();

බ්‍රව්සර් සැකසුම් අනුව මෙය නව පටිත්තක හෝ කවුළුවක විවෘත වේ. ප්‍රශ්නය විශේෂයෙන් නව කවුළුවක් සඳහා මනාපයන් වුවද නව ටැබ් එකක විවෘත කිරීම පිළිබඳව වේ.
ක්වෙන්ටින්

2

මෙම ප්‍රශ්නයට පිළිතුරක් ඇති අතර එය එසේ නොවේ.

මට පහසු කාර්යයක් හමු විය:

පියවර 1: අදෘශ්‍යමාන සබැඳියක් සාදන්න:

<a id="yourId" href="yourlink.html" target="_blank" style="display: none;"></a>

පියවර 2: ක්‍රමලේඛිකව එම සබැඳිය ක්ලික් කරන්න:

document.getElementById("yourId").click();

හියර් යූ ගෝ! මට ආශ්වාදයක් ලබා දෙයි.


බ්‍රව්සර් සැකසුම් අනුව මෙය නව පටිත්තක හෝ කවුළුවක විවෘත වේ. ප්‍රශ්නය විශේෂයෙන් නව කවුළුවක් සඳහා මනාපයන් වුවද නව ටැබ් එකක විවෘත කිරීම පිළිබඳව වේ.
ක්වෙන්ටින්

1

රූප විස්තරය මෙහි ඇතුළත් කරන්න

නව ටැබ් එකක් විවෘත කර එකම ටැබ් එකේ රැඳී සිටින්නේ කෙසේද යන්න පිළිබඳ බොහෝ තොරතුරු මම ගවේෂණය කළෙමි. එය කිරීමට මම එක් කුඩා උපක්‍රමයක් සොයාගෙන ඇත. - ඔබ විවෘත කිරීමට අවශ්ය වන url එක ඇති උපකල්පනය ඉඩ දෙනවා newUrl හා පැරණි url එක - currentUrl , ඔබ නව ටැබ් විවෘත පසු රැඳී සිටීමට අවශ්ය වන. JS කේතය ඊළඟට සමාන වනු ඇත:

// init urls
let newUrl = 'http://example.com';
let currentUrl = window.location.href;
// open window with url of current page, you will be automatically moved 
// by browser to a new opened tab. It will look like your page is reloaded
// and you will stay on same page but with new page opened
window.open(currentUrl , '_blank');
// on your current tab will be opened new url
location.href = newUrl;

ප්‍රශ්නය වන්නේ පරිශීලකයාගේ මනාපය නව කවුළුවල විවෘත කිරීමට නව ටැබ් එකක් විවෘත කිරීමයි. එකවර පවතින ටැබ් එකේ වෙනත් URL එකක් විවෘත කරන අතරම නව ටැබ් එකක URL එකක් විවෘත කරන්නේ කෙසේදැයි එය අසන්නේ නැත.
ක්වෙන්ටින්

0

කොහොමද නිර්මාණය කිරීම ගැන <a>සමඟ _blankලෙස targetවිශේෂණය වටිනාකම සහ urlලෙස hrefශෛලිය ප්රදර්ශනය සමග,: aa දරුවන් අංගයක් සමග සඟවා? ඉන්පසු DOM වෙත එකතු කර ළමා අංගයක් මත ක්ලික් කිරීමේ සිදුවීම අවුලුවන්න.

යාවත්කාලීන කරන්න

ඒක වැඩ කරන්නේ නැහැ. බ්‍රව්සරය පෙරනිමි හැසිරීම වළක්වයි. එය ක්‍රමලේඛිකව අවුලුවන නමුත් එය සුපුරුදු හැසිරීම අනුගමනය නොකරයි.

ඔබම පරීක්ෂා කර බලන්න: http://jsfiddle.net/4S4ET/


-1

ෆයර්ෆොක්ස් (මොසිල්ලා) දිගුවක් තුළ සිට නව ටැබ් එකක් විවෘත කිරීම මෙවැන්නකි:

gBrowser.selectedTab = gBrowser.addTab("http://example.com");

-1

මෙම ක්‍රමය ඉහත විසඳුමට සමාන නමුත් වෙනස් ආකාරයකින් ක්‍රියාත්මක වේ

.social_icon -> CSS සමඟ සමහර පන්ති

 <div class="social_icon" id="SOME_ID" data-url="SOME_URL"></div>


 $('.social_icon').click(function(){

        var url = $(this).attr('data-url');
        var win = window.open(url, '_blank');  ///similar to above solution
        win.focus();
   });

-1

මෙය අනවසරයෙන් සිදු විය හැකි නමුත් ෆයර්ෆොක්ස් හි ඔබ 'පූර්ණ තිර = ඔව්' යන තුන්වන පරාමිතිය සඳහන් කරන්නේ නම්, එය නැවුම් නව කවුළුවක් විවෘත කරයි.

උදාහරණයක් වශයෙන්,

<a href="#" onclick="window.open('MyPDF.pdf', '_blank', 'fullscreen=yes'); return false;">MyPDF</a>

එය ඇත්ත වශයෙන්ම බ්‍රව්සර් සැකසුම් අභිබවා යන බවක් පෙනේ.


-1

මෙය මට වැඩකි, සිදුවීම වලක්වන්න, යූආර්එල් එක එකතු කර <a> tagඉන්පසු ක්ලික් කිරීමේ සිදුවීම අවුලුවන්න tag.

Js
$('.myBtn').on('click', function(event) {
        event.preventDefault();
        $(this).attr('href',"http://someurl.com");
        $(this).trigger('click');
});
HTML
<a href="#" class="myBtn" target="_blank">Go</a>

බ්‍රව්සර් සැකසුම් අනුව මෙය නව පටිත්තක හෝ කවුළුවක විවෘත වේ. ප්‍රශ්නය විශේෂයෙන් නව කවුළුවක් සඳහා මනාපයන් වුවද නව ටැබ් එකක විවෘත කිරීම පිළිබඳව වේ.
ක්වෙන්ටින්

-1

මෙම window.open(url)නව බ්රව්සර් Tab දී url එක විවෘත වනු ඇත. එයට JS විකල්පයට පහළින්

let a= document.createElement('a');
a.target= '_blank';
a.href= 'https://support.wwf.org.uk/';
a.click(); // we don't need to remove 'a' from DOM because we not add it

මෙන්න වැඩ කරන උදාහරණයකි (නව ටැබ් විවෘත කිරීමට ස්ටැක් ඕවර් ප්‍රවාහ ස්නිපෙට් ඉඩ නොදේ)


"Window.open (url) නව බ්‍රව්සර් ටැබය තුළ url විවෘත කරනු ඇත" - එය නව කවුළුවක් හෝ නව පටිත්තක් සඳහා පරිශීලකයාගේ මනාපය අනුගමනය කරනු ඇත. කවුළුවක් සඳහා මනාපය ලබා දෙන විට එය නව පටිත්තකට බල නොකරනු ඇත. (ප්‍රශ්නය කුමක් ද යන්න). ඉලක්කය = _ හිස් සඳහා ද මෙය අදාළ වේ.
ක්වෙන්ටින්

ඔබ යෝජනා කරන ප්‍රවේශයන් දෙකම මෙම ප්‍රශ්නයට පෙර ඉවත් නොකළ පිළිතුරු 56 හි බොහෝ වාරයක් සඳහන් කර ඇත (සහ විවේචනය කර ඇත).
ක්වෙන්ටින්

-1

URL එක නව ටැබ් එකකින් හෝ නව කවුළුවකින් විවෘත කළ යුතුද යන්න ඇත්ත වශයෙන්ම පාලනය වන්නේ පරිශීලකයාගේ බ්‍රව්සර් මනාපයන් මගිනි. ජාවාස්ක්‍රිප්ට් හි එය අභිබවා යාමට ක්‍රමයක් නොමැත.

window.open()එය භාවිතා කරන ආකාරය අනුව වෙනස් ලෙස හැසිරේ. එය පරිශීලක ක්‍රියාවක result ජු ප්‍රති result ලයක් ලෙස හැඳින්වුවහොත් , අපි බොත්තම් ක්ලික් කිරීමක් කියමු, එය හොඳින් ක්‍රියාත්මක වී නව ටැබ් එකක් (හෝ කවුළුවක්) විවෘත කළ යුතුය:

const button = document.querySelector('#openTab');

// add click event listener
button.addEventListener('click', () => {
    // open a new tab
    const tab = window.open('https://attacomsian.com', '_blank');
});

කෙසේ වෙතත්, ඔබ AJAX ඉල්ලීම් ඇමතුමකින් නව පටිත්තක් විවෘත කිරීමට උත්සාහ කරන්නේ නම්, එය සෘජු පරිශීලක ක්‍රියාවක් බැවින් බ්‍රව්සරය එය අවහිර කරනු ඇත.

කිරීමට දම සේම බයිපාස් සහ callback සිට නව ටැබ් විවෘත, මෙතන ලොකු කුඩා නම්න් :

const button = document.querySelector('#openTab');

// add click event listener
button.addEventListener('click', () => {

    // open an empty window
    const tab = window.open('about:blank');

    // make an API call
    fetch('/api/validate')
        .then(res => res.json())
        .then(json => {

            // TODO: do something with JSON response

            // update the actual URL
            tab.location = 'https://attacomsian.com';
            tab.focus();
        })
        .catch(err => {
            // close the empty window
            tab.close();
        });
});

-1

මම මේ ආකාරයෙන් උත්සාහ කළ අතර එය හොඳින් ක්‍රියාත්මක වන බව පෙනේ

window.open('example.com', 'newWin');

මම මෙහි වැඩ කරන උදාහරණ රාශියක් සොයාගෙන ඇත:

http://www.gtalbot.org/FirefoxSection/Popup/PopupAndFirefox.html#TestPopupControl


එය පරිශීලකයාගේ අභිමතය පරිදි නව පටිත්තක හෝ කවුළුවක විවෘත වේ. එය නව ටැබ් එකකට බල නොකරනු ඇත.
ක්වෙන්ටින්

OP දැනටමත් එය අත්හදා බැලූ විට ඔබට ප්‍රශ්නයේ ඇති කොටස මග හැරුණාද? හෝ stackoverflow.com/a/59565074/19068 ? හෝ stackoverflow.com/a/35939565/19068 ? හෝ stackoverflow.com/a/30512485/19068 ? හෝ stackoverflow.com/a/11384018/19068 ? හෝ stackoverflow.com/a/26990478/19068 ?
ක්වෙන්ටින්

@ ක්වෙන්ටින් මට එම කොටස මඟ හැරුණි, නමුත් මම window.ben දෙවන පරාමිතිය «windowName» සමඟ _ _blank to ට සමාන කිරීමට හෝ එය නොමැතිව, උත්පතන හෝ නව ටැබය නවතම ගූගල් ක්‍රෝම් හි නොපෙන්වයි. මම කවුළු නාමය «newWin to ලෙස වෙනස් කළ විට, නව ටැබ් එකක් විවෘත විය. කවුළු නාම පරාමිතිය අත්‍යවශ්‍ය නොවන බැවින් එය අමුතුයි.
ආටෙම් ෂෙව්ට්සොව්

-4

ලිවූ පුද්ගලයා සමඟ මම තරමක් එකඟ වෙමි (මෙහි අක්ෂර වින්‍යාසය): “පවතින වෙබ් පිටුවක සබැඳියක් සඳහා, නව පිටුව එකම වෙබ් අඩවියේ කොටසක් නම් බ්‍රව්සරය සෑම විටම නව ටැබ් එකක සබැඳිය විවෘත කරනු ඇත. පවතින වෙබ් පිටුව. මට නම්, අවම වශයෙන්, මෙම "සාමාන්‍ය රීතිය" ක්‍රෝම්, ෆයර්ෆොක්ස්, ඔපෙරා, අයිඊ, සෆාරි, සීමොන්කි සහ කොන්කොරර් හි ක්‍රියාත්මක වේ.

කෙසේ වෙතත්, අනෙක් පුද්ගලයා ඉදිරිපත් කළ දෙයින් ප්‍රයෝජන ගැනීමට අඩු සංකීර්ණ ක්‍රමයක් තිබේ. අපි කතා කරන්නේ ඔබේම වෙබ් අඩවියක් ගැන (පහත "thissite.com"), ඔබට බ්‍රව්සරය කරන දේ පාලනය කිරීමට අවශ්‍ය නම්, පහත, ඔබට අවශ්‍ය වන්නේ "specialpage.htm" EMPTY වීමට, එහි HTML කිසිවක් නැත ( සේවාදායකයෙන් දත්ත යැවීමට කාලය ඉතිරි කරයි!).

 var wnd, URL;  //global variables

 //specifying "_blank" in window.open() is SUPPOSED to keep the new page from replacing the existing page
 wnd = window.open("http://www.thissite.com/specialpage.htm", "_blank"); //get reference to just-opened page
 //if the "general rule" above is true, a new tab should have been opened.
 URL = "http://www.someothersite.com/desiredpage.htm";  //ultimate destination
 setTimeout(gotoURL(),200);  //wait 1/5 of a second; give browser time to create tab/window for empty page


 function gotoURL()
 { wnd.open(URL, "_self");  //replace the blank page, in the tab, with the desired page
   wnd.focus();             //when browser not set to automatically show newly-opened page, this MAY work
 }

-7

ඔබට අවශ්‍ය වන්නේ බාහිර සබැඳි (වෙනත් වෙබ් අඩවි වෙත යන සබැඳි) පමණක් විවෘත කිරීමට නම් මෙම ජාවාස්ක්‍රිප්ට් / jQuery ටිකක් හොඳින් ක්‍රියාත්මක වේ:

$(function(){
    var hostname = window.location.hostname.replace('www.', '');
    $('a').each(function(){
        var link_host = $(this).attr('hostname').replace('www.', '');
        if (link_host !== hostname) {
            $(this).attr('target', '_blank');
        }
    });
});

මෙම ප්‍රතිචාරය මෙම ප්‍රශ්නයට සුදුසු නොවේ. නමුත් මෙය ඉතා ප්‍රයෝජනවත් යැයි සිතන්න! ඔබේ අදහසට ස්තූතියි!
නුරි අක්මන්

-9

සබැඳිය එකම වසමක (එකම වෙබ් අඩවියේ) තිබේ නම් බ්‍රව්සරය සෑම විටම නව පටිත්තක සබැඳිය විවෘත කරනු ඇත. සබැඳිය වෙනත් වසමක තිබේ නම් එය බ්‍රව්සර් සැකසුම් මත පදනම්ව එය නව ටැබ් / කවුළුවකින් විවෘත කරනු ඇත.

එබැවින්, මේ අනුව, අපට භාවිතා කළ හැකිය:

<a class="my-link" href="http://www.mywebsite.com" rel="http://www.otherwebsite.com">new tab</a>

JQuery කේත කිහිපයක් එක් කරන්න:

jQuery(document).ready(function () {
    jQuery(".my-link").on("click",function(){
        var w = window.open('http://www.mywebsite.com','_blank');
        w.focus();
        w.location.href = jQuery(this).attr('rel');
        return false;
    });
});

එබැවින්, පළමුවෙන්ම _blank ඉලක්කය ඇති එකම වෙබ් අඩවියේ නව කවුළුවක් විවෘත කරන්න (එය නව ටැබ් එකකින් එය විවෘත කරනු ඇත), ඉන්පසු එම නව කවුළුව තුළ ඔබට අවශ්‍ය වෙබ් අඩවිය විවෘත කරන්න.

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.