簡體   English   中英

為鏈接網址打開一個新標簽

[英]opening a new tab for a link url

我想打開一個新的 TAB 而不是 URL 鏈接的新窗口。 我嘗試添加 target="_tab" 仍然打開一個新窗口和一個新選項卡。 新選項卡顯示 LocalHost,但無法訪問。 新窗口具有正確的 URL 鏈接。

我不明白為什么要打開一個新窗口。 我們可以有一個帶有 URL 鏈接的新標簽嗎?

這是代碼:

  <div style="font-family: Arial; font-size: 10pt">
        <small>
          <a href="#" onclick="window.open('https://maps.google.ca/maps?
              q=3100+ReneLevesque+Quebec&amp;ie=UTF8&amp;hq=&amp;hnear=
              3100+ReneLevesque,+Quebec,+Qu%C3%A9bec+J4X+1C3&amp;t=m&amp;
              source=embed&amp;z=14&amp;iwloc=A')" style="color:#0000FF;
              text-align:end"  target="_tab" >Bigger Map </a>

       </small>
   </div>

修改代碼 仍然無法正常工作,即它正在打開一個新窗口而不是選項卡。

       <small>
          <a href="https://maps.google.ca/maps? 
          q=3100+ReneLevesque+Quebec&amp;ie=UTF8&amp;hq=&amp;hnear=
          3100+ReneLevesque+Quebec,+Qu%C3%A9bec+J4X+1C3&amp;t=m&amp;source=embed&amp;
          z=14&amp;iwloc=A" style="color:#0000FF;
          text-align:end" target="_blank"  >Bigger Map</a>

       </small>

嘗試使用target="_blank"而不是target="_tab"

1 - 刪除不需要的行為

刪除 javascript onclick事件,因為它不需要。 這實際上也是導致您獲得新窗口的原因,因為您正在調用window.open 這正是你不想要的。 將所需的 url 復制到href屬性而不是href="#"

2 - 設置目標屬性

更改a標簽的target屬性並將其設置為_blank ,這是一條內置指令,用於告訴瀏覽器在新選項卡中打開鏈接。 在舊瀏覽器中, _blank會打開一個新窗口(在標簽瀏覽器出現之前),但現在所有現代瀏覽器默認都會在新標簽中打開一個_blank鏈接。

它應該是這樣的:

<a href="https://maps.google.ca/maps?
          q=3100+ReneLevesque+Quebec&amp;ie=UTF8&amp;hq=&amp;hnear=
          3100+ReneLevesque,+Quebec,+Qu%C3%A9bec+J4X+1C3&amp;t=m&amp;
          source=embed&amp;z=14&amp;iwloc=A" target="_blank" style="color:#0000FF;
          text-align:end" >Bigger Map </a>

筆記

有幾個內置的target屬性:

  • _空白的
  • _父母
  • _自己
  • _ 頂部

以下是 Mozilla 關於target屬性的一些文檔

此屬性指定顯示鏈接資源的位置。 在 HTML4 中,這是框架的名稱或關鍵字。 在 HTML5 中,它是瀏覽上下文(例如,選項卡、窗口或內聯框架)的名稱或關鍵字。 以下關鍵字具有特殊含義:

_self :將響應加載到與當前響應相同的 HTML4 框架(或 HTML5 瀏覽上下文)中。 如果未指定屬性,則此值為默認值。

_blank :將響應加載到新的未命名 HTML4 窗口或 HTML5 瀏覽上下文中。

_parent :將響應加載到當前框架的 HTML4 框架集父級或當前框架的 HTML5 父級瀏覽上下文中。 如果沒有父項,則此選項的行為方式與 _self 相同。

_top :在 HTML4 中:將響應加載到完整的原始窗口中,取消所有其他框架。 在 HTML5 中:將響應加載到頂級瀏覽上下文(即當前瀏覽上下文的祖先,並且沒有父瀏覽上下文)。 如果沒有父項,則此選項的行為方式與 _self 相同。 僅當存在 href 屬性時才使用此屬性。

您使用的任何其他字符串都將為鏈接的目標提供一個名稱,然后您可以在其他地方使用該名稱在同一選項卡中打開其他鏈接。 例如,如果你稱它為“dave”,那么它會打開一個新標簽,瀏覽器將其稱為“dave”。 任何其他帶有target="dave"鏈接都將在瀏覽器稱為“dave”的選項卡中打開 - 而不是新選項卡。

您需要稍微更改您的 href :

  <a href="https://maps.google.ca/maps?
      q=3100+ReneLevesque+Quebec&amp;ie=UTF8&amp;hq=&amp;hnear=
      3100+ReneLevesque,+Quebec,+Qu%C3%A9bec+J4X+1C3&amp;t=m&amp;
      source=embed&amp;z=14&amp;iwloc=A" style="color:#0000FF;
      text-align:end"  target="_blank" >Bigger Map </a>

如何在新選項卡(而不是新窗口)中打開鏈接? 這個問題基本上是一樣的。

簡而言之,您可以使用 css 屬性:

target-new:tab

然而,一般的建議是你不應該試圖控制用戶正在做什么,把它留給他們和他們的瀏覽器。

@model WebTest.Models.Urls
@{
    ViewBag.Title = "URL shortener";
}

<h2>Shorten a URL</h2>
@Html.ValidationSummary()

@using (Html.BeginForm())
{
    <div class="form-group">
        @Html.TextBoxFor(model => model.Url.Name, new { placeholder = "URL Shortened Name", @class = "form-control" })
    </div>
    <div class="form-group">
        @Html.TextBoxFor(model => model.Url.UrlLink, new { placeholder = "URL Link", @class = "form-control" })
    </div>
    <input type="submit" class="btn btn-primary" value="Shorten" />
}

<table class="table full-width">
    <thead>
        <tr>
            <th>Url Shortened Name</th>
            <th>Url Link</th>
        </tr>
    </thead>
    <tbody>
        @foreach (var url in Model.UrlList)
        {
            <tr>
                <td><a href="@(url.UrlLink)" target="_blank">@(url.Name)</a></td>
                <td>@Html.DisplayFor(modelItem => url.UrlLink)</td>

            </tr>
        }
    </tbody>
</table>    


[HttpGet]
            public ActionResult Index()
            {
                MvcApplication.Log.Info("Hello");
                  Urls urls = new Urls();

                urls.UrlList = ReadURLToFile();
                //Url url = new Url();
                return View(urls);
            }

            public ActionResult Index(Url url)
            {
                Urls urls = new Urls();

                if (ModelState.IsValid)
                {
                    urls.UrlList = ReadURLToFile();
                    AddURLToFile(urls,url);
                }
                return View(urls);
            }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM