首页 > 解决方案 > 是否可以在文档准备好之前进行一些客户端 DOM 操作?

问题描述

我试图找到一种方法(如果可能的话)在渲染时和 DOM 完全加载之前使用 javascript 向元素添加一些属性。我知道,这听起来适得其反,但让我给你一些背景:

这是我最近的尝试,它使 DOM 修改正确,但不是在 Google 的丰富代码段验证器处理页面之前:

<div class="pitinfo"><div class="padleft padright"><%Product.BasePrice%></div></div>

<!-- at page bottom -->
<script type="text/javascript">
    (function() {
        var pricesting = "<%Product.BasePrice%>";
        var price =  pricesting.slice(1);
        $('.pitinfo').attr('itemprop', 'price');
        $('.pitinfo').attr('content', price);
    })();
</script>

加载后我得到了这个<div class="pitinfo" itemprop="price" content="9.99">$9.99</div>,但是 Rich Snippet Testing 工具告诉我price没有设置。

我已经尝试在我的模板代码中使用 ASP,但托管服务提供商不允许。

是否可以在文档渲染流程中的某个时间进行 DOM 修改?

标签: javascriptjquerydomgooglebotgoogle-rich-snippets

解决方案


可以<script><body>. 标记内的 JavaScript 在其之后的 HTML 之前加载,因此您可以在加载 HTML/JS 的其余部分之前编辑元素的值。
例如:

<div>
    <div id="element" value="$5.99"></div>
    <script>
        var element = document.getElementById("element")
        element.value = 5.99;
    </script>
</div>

你可以在这里查看


推荐阅读