【发布时间】:2021-01-26 04:21:08
【问题描述】:
抱歉:我知道这是一个常见问题解答,但我已经查看并尝试了但没有成功。
我想要完成的是在“搜索”选项卡中生成 Apache Solr 结果(完成;工作;附加屏幕截图),然后在“文档”选项卡中打开这些结果(返回的文档标题是指向源文档的超链接) (以及后来,“图表”选项卡中实体和文档之间的链接)。
目前我正在“离线”工作(本地主机),但最终我想将这项工作推送到在线(虚拟私人服务器)。
这里是示例代码和一个 JS Fiddle,https://jsfiddle.net/pfjtgLs6/
... 在本例中,我使用 Google 作为“结果”选项卡中的链接示例,我想在“文档”选项卡中打开该链接。实际上,这些链接(复数)将是文档的标题(即 Solr 搜索结果),或该选项卡中的其他链接。
我一直在编写一个 Ajax 解决方案时遇到了麻烦,该解决方案通常处理这些链接(同样,复数),而不是将 URL 硬编码到 Ajax 方法中。
<!DOCTYPE html>
<html encoding="UTF-8" charset="UTF-8" lang="en-US" language="English" xmlns="https://www.w3.org/1999/xhtml/" itemtype="http://schema.org/WebPage">
<head>
<meta charset="utf-8">
<script src="https://code.jquery.com/jquery-3.5.1.min.js" integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin="anonymous"></script>
<script src="https://code.jquery.com/ui/1.12.1/jquery-ui.min.js" integrity="sha256-VazP97ZCwtekAsvgPBSUwPFKdrwD3unUfSGVYrahUqU=" crossorigin="anonymous"></script>
<link rel="stylesheet" href="https://code.jquery.com/ui/1.12.1/themes/smoothness/jquery-ui.css">
<script type = "text/javascript">
$(init);
function init(){
$("#tabs").tabs();
}
</script>
</head>
<body>
<div id = "tabs">
<ul>
<li><a href="#search">Search</a></li>
<li><a href="#documents">Documents</a></li>
<li><a id="documents2_id" href="#documents2">Documents2</a></li>
<li><a href="#graph">Graph</a></li>
</ul>
<div id="search">
<ul>
<li>search item 1</li>
<li>search item 2</li>
</ul>
<p>How can I open <a href="https://www.google.com/">this link</a> (Google, for example), in the 'Documents' tab? ... Ajax solutions preferred.</p>
<p>Please note that in my project, I am presently working with local files on a localhost webserver; however, I am also interested in comments and suggestions on CORS issues.]</p>
<p><button type="button" onclick='$("#documents2_id").trigger("click");'>
Go to 'Documents2' tab
</button> </p>
</div>
<div id="documents">
<ul>
<li>documents item 1</li>
<li>documents item 2</li>
</ul>
</div>
<div id="documents2">
<ul>
<li>documents2 item 1</li>
<li>documents2 item 2</li>
</ul>
</div>
<div id="graph">
<ul>
<li>graph item 1</li>
<li>graph item 2</li>
</ul>
</div>
</body>
</html>
【问题讨论】:
-
您的小提琴以打开 Google 为例,但在您的问题中,这听起来像是来自您自己系统的本地搜索结果——那是什么?您将无法通过 AJAX 加载任意第三方网站——它们必须启用 CORS 才能正常工作。
-
如果您正在加载完整的 HTML 文档,从技术上讲,您将不得不删除它们中的很多内容 - 不能只在其中第二次插入
html、head和body一个文件。 (我是在技术上说,因为通过浏览器纠错,它可能仍然有效。)在第二个选项卡中有一个 iframe,您只需将 URL 加载到其中,可能是一个更简单的选择。仅适用于允许在不同域上加载框架的 3rd 方站点,并且根据内容修改 iframe 高度仅适用于本地资源,您可以在其中注入脚本进行测量。 -
@CBroe:注意到了,谢谢。我用一些额外的细节更新了我的问题。
标签: javascript jquery ajax jquery-ui-tabs