加载内容而不更改 URL 或调用任何 JavaScript 函数

Loading of content without changing URL or calling any JavaScript function

本文关键字:调用 任何 JavaScript 函数 URL 加载      更新时间:2023-09-26

我遇到了一个有多个页面的网站。当页面被点击时,内容会动态加载。我知道使用了AJAX,但是如果不调用任何JavaScript函数,我就无法理解它是如何工作的。这是一段代码:

<a href="#" class="acted" onclick="return false;">1</a>
<a href="#" onclick="return false;">2</a>
<a href="#" onclick="return false;">3</a>

我错过了什么吗?

是的,你错过了一些东西。如果没有看到完整的代码,我们无法确定,但这个页面很可能使用 jquery 选择器来处理事件。例如,代码可能会声明所有"a"标签都会获得与它们关联的某个 javascript 函数。或者所有带有类="acted"的东西,等等。看看: http://www.w3schools.com/jquery/jquery_ref_selectors.asp

您是否从"显示源代码"中获取了该代码? 如果是这样,则很可能在页面上运行了一个脚本,以便在加载页面后动态连接事件处理程序,因此原始 HTML 中的那些 onclick 事件可能只是占位符。

例:

<html>
<head></head>
<body>
    <div id="main">This text is not clickable and has no action when clicked, but try to click me anyway just in case.</div>
</body>
<script>
    window.onload = function()
            { 
               document.getElementById("main").onclick = function() {
                                    return alert('Actually, I am clickable afterall!');
                                };
            };
</script>
</html>

在上面的页面上,有一个名为"main"的div,它没有默认的点击操作。 但是,当页面加载时,会触发一个事件(在本例中为 window.onload),该事件调用一些代码将函数附加到 id 为 "main" 的div 的 onclick 属性。 结果是,即使原始 HTML 不包含默认处理程序,main 也变得可点击,并且如果您执行"查看源代码",您将看不到处理程序(尽管如果您的浏览器具有开发人员工具,您可能能够看到它连接起来)。

我也在JS小提琴中提供了这个:http://jsfiddle.net/qfazj/2/

(如果您不熟悉 JSFiddle,右下角是呈现网页的位置,因此单击此处的文本,您应该会看到警报发生。