如何触发 iframe 加载到新标签页中?

How to trigger the iframe to load in a new tab?

提问人:Jack 提问时间:11/17/2023 最后编辑:Jack 更新时间:11/18/2023 访问量:24

问:

我有一个加载 iFrame 的按钮。我想提供另一个按钮来打开并在新选项卡中加载 iFrame。 目前,我使用按钮打开基本上复制页面,但不确定如何触发框架的加载:

<button onclick="ViewFolder('f6f906a14')">Open cases below </button>    

<a href="#" rel="noopener"><button>Open cases in a new tab</button></a>
    
<iframe id="postdicom-iframe" height="720" width="600"></iframe>

我试图研究一些 JS 以在新选项卡中加载 iframe。我发现该选项卡将在新选项卡上显示相同的页面内容。

任何建议将不胜感激。

非常感谢, 千斤顶

var _apiKey = "68975ca0-58da-4fd8-8974-7614565466c";
var _accountKey = "1e072fb6-7805-4f1a-87dd-b5464564f5f7";
var _userUuid = "ee7e0713-1863-4913-b7da-6454364754da6";
var _folderUuid = "b5fb6b1c-c7ff-43b4-acef-4543554745d0";
////Send view request to PDAPI server and open it.
function ViewFolder(_folderUuid) {
    if (_accountKey && _apiKey) {
//Create a instance of PDCloudAPI object.
    var _cloudApi = new pDCloudApi(_apiKey, _accountKey);
    _cloudApi.Initialize(function (result) {
     if (result.Success) {
    console.log("API is initialized successfully.");
    console.log(result)
    _cloudApi.GetFolderViewUrl(_userUuid, _folderUuid, function (response) {
    console.error(response)
    if (response.Success) {
       var url = response.Result;
       var iframe = document.getElementById("pd-iframe");
       iframe.src = url;
        document.getElementById("iframe-container").style.display="block";
    }
    else {
    console.error(response.Message)
    }
     })
    }
     else {
       console.error("API initialize error.")
        console.error(result)
                    }
                });
            }
            else {
                console.error("'_apiKey' or '_accountKey' are undefined.")
            }
        }

function HideIframe(){
    document.getElementById("iframe-container").style.display="none";
}
function openInNewTab(url) {
  window.open(url, '_blank').focus();
}
JavaScript HTML iframe

评论

0赞 mykaf 11/17/2023
您的 iframe 中包含哪些内容?这不就像在新标签页中打开链接一样吗?
0赞 Jack 11/18/2023
iframe 加载一个控制台,该控制台使用 API 调用要在专用查看器中显示的医学图像。
0赞 mykaf 11/18/2023
“控制台”是什么意思?您应该共享 的代码。ViewFolder()
0赞 Jack 11/18/2023
通过控制台,我的意思是它加载了一个图像查看器。我会将代码添加到我的第一篇文章中。
0赞 mykaf 11/21/2023
究竟什么是“图像查看器”?浏览器可以查看图像;为什么需要 iframe?您忽略了包含所有功能,因此我们无法重新创建此功能。_cloudApi

答:

0赞 Surya R Praveen 11/18/2023 #1

参考:使用 JavaScript 在新标签页中打开 URL

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

// Or just
window.open(url, '_blank').focus();

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

评论

0赞 Jack 11/18/2023
谢谢。对不起,我真的是 Javascript 的新手。我已经插入了该函数。加载 iFrame 时,指向新选项卡的链接应如何显示?目前:<button onclick=“ViewFolder('f6f906a14')”>在 </button 下打开案例>
0赞 Surya R Praveen 11/20/2023
@Jack - 你能更新小提琴/演示吗?这将是非常有帮助的