【问题标题】:How to call a javascript method from a href?如何从href调用javascript方法?
【发布时间】:2021-03-04 03:37:12
【问题描述】:

我有一个带有几个菜单项的侧边导航菜单,每个菜单项都实现为 href 元素,例如:

<li><span><a href="page.jsp">Href text</a></span></li>

每个href调用一个具有某些功能的Jsp文件;在浏览器中,链接看起来是活动的且正确的:如果用户将鼠标光标移到链接上,鼠标光标将变为手形手指。 被调用的 Jsp 页面提供了一些输入元素,用户可以在其中输入一些数据并单击发送按钮。效果很好。

现在在一个菜单项中,我希望被调用的 Jsp 页面立即显示一些我必须从 servlet 检索的数据;不应通过单击该页面中的按钮来请求这些数据, 但在页面打开时立即出现。

我已通过以下方式实现:

<li><span><a onClick="method(); return false;">Hfref text</a></span></li>

所以当用户点击href时调用了一个javascript方法;该方法调用servlet,获取数据并显示它们,这是有效的。唯一缺少的一点是菜单项 似乎是不活动的:当用户在菜单项上移动鼠标光标时,鼠标光标不会改变。所以用户会假设菜单项文本不可点击。

我也试过了:

<li><span><a href="javascript:method()">Href text</a></span></li>

这确实调用了我的 javascript 方法,但是该方法无法访问可用的 HTML 元素(当我调用任何 document.getElementById("element") 时,它会变为 null, 如果通过 onClick=method 调用该方法,则该方法在哪里找到它们。

如何从 href 调用 javascript 方法或 servlet?或者我怎样才能使跨度具有与 href 相同的外观和感觉?

【问题讨论】:

  • 在您的第一个示例中,只需包含 href="javascript:void()",这将为您提供活动链接。
  • 没有什么可以阻止您拥有链接(用于外观)并处理 onclick 而不是使用 href。你可以传递一个像“#”这样的href,它给链接一个正确的外观,但同时什么也不做。然后你可以点击它
  • 是的,这行得通。而且很容易!!!非常感谢。

标签: javascript html jsp


【解决方案1】:

我不是 javascript 方面的专家,但据我所知,您可以使用 Document.GetElementById 来获取该标签,并且您可以使用 onClick method(在 .js 文件中)以便在调用 href 时你想做什么,就可以做什么。如果您仍然有问题,请告诉我,以便我可以告诉您如何使用代码执行此操作。

【讨论】:

    【解决方案2】:

    你想用内联 JS 显示一个指针吗?

    这是onmouseover 的一种方式 - 使用它您仍然可以保留您的onclick 功能:

    <li><span><a onmouseover="this.style.cursor='pointer'" onClick="method(); return false;">Href text</a></span></li>

    此外,为链接添加样式以使其更引人注目。在这里,我使链接看起来像一个按钮,并且我也在管理样式 onmouseout

    <li><span><a style="color: white; background-color: blue; padding: 10px; font-weight: bold;" onmouseover="this.style.cursor='pointer'; this.style.color='yellow'; this.style.backgroundColor='red';" onClick="method(); return false;" onmouseout="this.style.color='white';this.style.backgroundColor='blue';">Href text</a></span></li>

    【讨论】:

    • 这对visited 和其他文本装饰样式没有帮助。如果您没有在锚点上定义href,它将不会显示ua 特定的锚点样式。
    • 据我了解,OP 只是希望链接更加引人注目,而不会丢失 onClick 功能。他可以根据自己的喜好使用悬停状态、事件处理和 CSS 来控制所有这些 ua 特定样式。
    猜你喜欢
    • 2013-04-26
    • 1970-01-01
    • 2010-12-19
    • 1970-01-01
    • 2014-07-18
    • 2015-11-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多