【问题标题】:getElementById from another pagegetElementById 从另一个页面
【发布时间】:2015-03-11 22:03:06
【问题描述】:

我正在尝试从一个网页 URL 获取一个 div 到另一个网页,并使用 getElementById 以纯文本形式显示,而不使用 AJAX 或 jQuery,因为我将在 FitNesse 中实现它。有没有办法传递 URL?

【问题讨论】:

  • 如果其他页面在您的域中,您可以使用 AJAX 执行此操作。否则 JSONP 或简单的一行 PHP 可能会有所帮助。
  • 并非没有像ajax这样的外部请求
  • 页面是否在同一个域中?否则,您可能会遇到一些令人讨厌的 CORS 错误 (w3.org/TR/cors)
  • 是的,它在同一个域中
  • 我们可以获取您的一些代码,以便我们可以帮助您改进它。

标签: javascript html getelementbyid fitnesse


【解决方案1】:

在第 1 页。

<div id="dataDiv">1234</div>
<a id="getData" href="">Page2</a>

<script>
var data = document.getElementById('dataDiv').innerHTML;
//This will get the content from the div above with the id of "dataDiv"

document.getElementById("getData").setAttribute("href","page2.html?var="+data);
//This will set the url of the anchor with the id of "getData" with your url and the passing data.
</script>

在第 2 页

  function getUrlVars() {
  var vars = {};
  var parts = window.location.href.replace(/[?&]+([^=&]+)=([^&]*)/gi, function(m,key,value) {
      vars[key] = value;
  });
  return vars;
  }
  var var1 = getUrlVars()["var"];

这会将第一页上的 div 中的内容发送到第二页。第 1 页上的结果 url 将是 page2.html?var=1234

【讨论】:

  • 已编辑。如果您只传递几个数字,这是一种非常简单的方法。
  • Adam,您的脚本所做的是:将整个元素的 HTML 设置在一个链接中,按下该链接后,您将导航到其他页面,并且只有在该其他页面上,您才会阅读 [" var"] 字符串查询。 这与从外部页面(从元素 ID)抓取内容无关
  • 他不是在尝试获取第一页上 div 的内容,并将其传递给 page2 吗?我刚刚测试了我的代码,它确实做到了这一点。除非我误解了这个问题。
【解决方案2】:

您可以在隐藏的 iframe 中加载 URL。

然后使用 iframe.contentWindow.document.getElementById($id) 如下所述:How to pick element inside iframe using document.getElementById

类似的东西:

<iframe src="urlWithinYourDomain.html" style="display:none"></iframe>

后跟一个类似的函数:

var divElement = document.getElementById('iframeId').contentWindow.document.getElementById('elementIdOnSourcePage');
document.getElementById('targetParentId').appendChild(divElement);

恐怕我目前无法对此进行测试,因此可能存在语法错误,但我认为它传达了这个想法。这是一个有点肮脏的方法,但考虑到你的限制,这是我能看到做你要求的最好的方法。

【讨论】:

    猜你喜欢
    • 2021-03-11
    • 1970-01-01
    • 2013-06-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-11-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多