【问题标题】:Trying to make an anchor open with javascript and python试图用javascript和python打开一个锚点
【发布时间】:2015-12-07 09:02:08
【问题描述】:

首先,对于任何错误,我很抱歉,我是一个极端的新手编码器。

我想要做的是在页面上打开一个链接(这是由 python 生成的 html),让它在另一个窗口中打开到一个锚点。这个anchor是一个reversedisplay javascript,意思是我要打开anchor所在的内容。

初始python/html链接如下:

print "/>TEXT HERE<a value=\"mg-auto\" onClick=\"Open('mg-auto')\" href=\"http://LINKHERE/#mg-auto\" target=\"_blank\"><font title=\"mg-auto\" >(<span class=\"tooltip\">?</span>)</font></a>"

你会点击它导致这个:

<a href="javascript:ReverseDisplay('mg-auto')">mg-auto</a>
<div id="mg-auto" style="display:none;">
TEXT HERE 
<hr />
</div>

打开反向显示的javascript函数是这样的:

function Open(d) {
document.getElementById(d).style.display = "block";
} 

我在html和python中都实现了这个功能。

但是,由于某种原因,锚点根本不起作用。我摆弄了一下,发现一个 header + id 像这样:

<h3 id="IDNAME"></h3>

会做一个有效的锚点,但像我这样的 div + id 不会。但是,我不能在不破坏 html 的情况下结合标题和 javascript 函数。

有谁知道使锚点起作用的方法吗?我想我最大的问题是无论我如何尝试实现 id,当我尝试链接到锚点时,它都不会识别 '#IDNAME'

【问题讨论】:

标签: javascript python html


【解决方案1】:

据我所知,您希望有人单击“(?)”以获取一个新窗口,其中以 display="none" 开头的 div 获取 display="block"

在链接(fragmenthash)之后放置 '#mg-auto' 将在页面加载时将您带到具有该 id 属性的元素(它将如果它不在屏幕上,则跳转到它)。但问题是onClick="Open('mg-auto')" 将在您点击链接之前运行,而不是在新页面在新窗口中加载之后运行。所以在新窗口中 div 仍然有display="none"

要在页面加载时运行某些内容,您可以使用window.onload 事件,因此您只需要哈希即可。检查下面的代码。

window.onload = function() {
  // Check if hash exists
  if(window.location.hash) {
    // Remove the "#" from the hash
    hash = window.location.hash.substr(1);
    // Display element with id == hash
    document.getElementById(hash).style.display = "block";
  }
}

该代码将在页面上的所有内容都加载后运行。

PS:您基本上可以在任何元素(包括 div 和标题)上放置一个 id,然后让您的 url 的哈希值将您带到它。

【讨论】:

  • 非常感谢您的回答!我不会想到打开不同功能的顺序会成为问题;下次我使用 html 和 javascript 时,我一定会记住在页面加载后调用的 order 函数:)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-04-02
  • 1970-01-01
  • 1970-01-01
  • 2015-04-08
  • 2017-07-09
  • 2023-04-08
相关资源
最近更新 更多