-1

I am trying to see the code the following URL - http://www.chilis.com/EN/Pages/menuitem.aspx

I am seeing some weird things on the page that I cannot understand. I was hoping some one could explain it to me.

  1. The actual menu items I see in the browser are no where to be found in the source code. The page does not look like its using any ajax style calls.

  2. There is a piece of base64 blob in there. I decoded it and its still results in base64 encoded bytes. Not sure what that is and why its even there in the source page.

Thanks for any help.

P

4

2 回答 2

2

如果您使用 Firebug 或类似工具并查看网络面板并仔细观察下载的文件,您将看到一个名为 Navigator.txt 的文件被获取,其中包含 JSON 格式的左侧菜单(Appetizersn 和 Flatbreads 等)。

在此之后并弄清楚网站的哪个部分实际加载了这个 Navigator.txt 应该会给你一个关于菜单是如何构建的提示。

于 2013-06-09T09:09:05.413 回答
1

通过ajax加载菜单内容

正如 CodeTwice 指出的那样,文件 Navigator.txt正在通过 ajax (xhr) 加载以获取数据。

针对 XHR 呼叫过滤的网络选项卡

如果您在 chrome devtools 中为 Navigator.txt 的 URL 添加断点,您可以看到哪个 javascript 文件和哪个方法可用于加载菜单数据。

为 url 添加 xhr 断点

查看调试器在断点处暂停

如果你使用 chrome devtools 更容易分析源代码:

Base64 你是指 Viewstate 吗?

滚动浏览源代码,我只能找到看起来像 base64 编码字符串的视图状态。你能澄清你的意思是哪一部分吗?

你的问题得到解答了吗?

解释你的问题:

  • 菜单项不在源代码中。页面是否通过 ajax 加载它们?是的,它确实。
  • 代码中的 base64 blob 是什么?如果您谈论视图状态,这是 ASP.NET 网页使用的一种技术,用于在回发之间保持对 Web 窗体状态的更改。如果你google viewstate,你可以找到很多描述它的文章。

这能回答你的问题吗?如果不是这种情况,请随时为您的问题添加更多详细信息。

于 2013-06-09T09:00:22.167 回答