1

我根本不是测试和目标专家。我是一名应用程序架构师。我昨天和我的同事进行了讨论,他在 Test & Target 方面拥有丰富的经验。今天在我的网站上,测试和目标内容是通过下面提到的步骤呈现的。

1) 页面加载 2) 对 T&T url 进行 AJAX 调用。响应是带有多行 document.write 的 JS 3)当该 JS 执行内容时,AKA html 标记会在页面中呈现。

上述步骤无助于搜索引擎抓取该内容。我问我的同事,您是否可以只发送内容(html)而不是发送 JS(document.write)响应。如果可能的话,我会从服务器端本身调用内容,并在那里附加内容以响应搜索引擎抓取。

他说这根本不可能。我不相信。以我在 Web 应用程序架构方面的经验,这应该是可能的。但我对产品的了解为零。

如果有人认为这是可能的,请您提供执行步骤。我将与我的同事分享。非常感谢。

更新

作为临时解决方案。C# .Net 中有没有办法在 aspx 文件中运行 document.write JS。例如,如果我执行 document.write("test")。文本测试应该是没有 document.write js 代码的响应的一部分。

问候, Ravishankar Rajendran

4

1 回答 1

0

在 mbox.js 文件中重新定义 document.write:

    document.write=function(text)
      {
      var foo = document.createElement("span");
      var bar = text;
      foo.textContent = bar;
      
      return foo.outerHTML;
      }

然后它将返回一个标记字符串。

document.write 仅在以下情况下由动态标签管理使用。

使用动态标签管理开关插件加载暂存库使用 document.write。

解决方法:通过在页面代码中专门引用暂存库而不是使用动态标签管理开关插件在库之间切换,在暂存环境中进行测试。

通过动态标签管理同步加载 JS 和 HTML 脚本使用 document.write。

解决方法:通过动态标签管理同步加载脚本无法避免 document.write。因此,当使用此内容类型时,所有第三方脚本(JS 和 HTML)都应在动态标签管理中异步加载,以避免 document.write。请始终考虑并测试所有代码依赖项,以确保通过异步加载仍能完成所需的行为。

参考

于 2015-06-11T02:59:06.140 回答