将文本数据定位到网页上的 DIV?

Targeting textual data to a DIV on a web page?

我有一个网页 - index.html 在本地主机网络服务器上 - 通过 DIV 元素和 CSS 样式表水平拆分为上/下窗格。

标题(hyperlinked 源 HTML 文档)出现在上半部分。

<div id="titles"></div>

任务 1。当我单击一个 hyperlinked 标题时,输出被定位到 index.html 上的 DIV。效果不错。

任务 2。此外,当我单击 link 时,我想将选定的文本(“片段”)发送到 index.html 上的单独 DIV。

我对第二个任务的 well-coded 解决方案特别感兴趣。

这是一个简化的示例,说明了任务。

更新。 根据接受的答案,这里是更新的示例(有效)。


var snippets = "<div><p>Lorem ipsum dolor sit amet, <b>consectetur adipiscing elit</b>.</p></div>";

$('a#documents_tab').on("click", function() {
  var url = $(this).attr('href');
  $('[id*=documents_div]').html('<iframe src="' + url + '" /></iframe>');
  return false;
});

$("a#documents_tab").on("click", function() {
  var url = $(this).attr("href");
  let ele = document.getElementById("snippets_div");
  ele.innerHTML = snippets;
  $("[id*=documents_div]").html(
    '<iframe src="' + url + "?txt=" + snippets + '" /></iframe>'
  );
  return false;
});
a {
  font-size: 12px;
}

h5 {
  margin: 0px;
}

iframe {
  width: 100%;
}

p {
  font-size: 12px;
  color: brown;
}

#snippets_div p {
  font-size: 11px;
  color: green;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

<body>
  <h5>Titles</h5>
  <a id="documents_tab" href="https://example.com/">Example.com</a>
  <hr>
  <h5>Documents</h5>
  <div id="documents_div"></div>
  <hr>
  <h5>Snippets</h5>
  <div id="snippets_div">
    <!-- <iframe id="preview_iframe"></iframe> -->
  </div><br />
  <h5>Other content</h5>
  <div>
    <p>Suspendisse efficitur pulvinar elementum. Vestibulum a est eu erat rutrum scelerisque non et diam. Nam ut fringilla enim.</p>
  </div>
</body>


JSFiddle:https://jsfiddle.net/vstuart/47srd1bc/128/


有多种方法可以实现这一点。但最简单的方法之一如下。

在您的示例中,您将目标发送到 iframe。如果我理解正确,您还想将其他数据(片段)发送到同一个 iframe。

要传递额外的数据片段,您可以像下面那样传递 url 参数。

var snippets = "<div><p>bananas; <b>carrots</b></p></div>";

      $("a#documents_tab").on("click", function () {
        var url = $(this).attr("href");
        let theSnippetText = "Hello, Whosebug!";
        let ele = document.getElementById("snippets_div");
        ele.innerHTML = snippets;
        $("[id*=documents_div]").html(
          '<iframe src="' + url + "?txt=" + snippets + '" /></iframe>'
        );
        return false;
      });

要在框架内读取和附加该数据,您需要在 index.html 中添加几行 javascript 和 html,如下所示。

HTML

<h3>Snippets</h3>
    <div id="snp"></div>

JavaScript

let params = new URL(document.location).searchParams;
      let txt = params.get("txt");
      document.querySelector("#snp").innerHTML = txt;