Javascript 在元标记中显示来自DIV的内容

Javascript 在元标记中显示来自DIV的内容,javascript,html,content-management-system,meta,Javascript,Html,Content Management System,Meta,我有一个div是这样的: <div id="beskrivelse" class="description html_content" itemprop="description"> {{description}} </div> <script> // Get the content var descval = document.getElementById('beskrivel

我有一个div是这样的:

            <div id="beskrivelse" class="description html_content" itemprop="description">
                {{description}}
            </div>
<script>
// Get the content
var descval = document.getElementById('beskrivelse').innerHTML;
// Create the new meta-element
var elm = document.createElement("meta");
elm.setAttribute("property", "og:description") 
elm.setAttribute("content", descval);
// Append the element to the HEAD
document.getElementsByTagName("head")[0].appendChild(elm);
</script>
如果写入以下内容,则会出现语法错误:

            <meta property="og:description" content=" {{description}} "/>

您的代码应该可以工作,因为您在DOM中已经有一个带有属性og:description的元元素,并且您可以在页面底部或DOM就绪回调中运行脚本。就像在你的小提琴中一样,如果你像我一样把JS设置为在domReady上运行

如果从一开始DOM中就没有meta元素,那么可能需要创建它并将其附加到DOM中。大概是这样的:

            <div id="beskrivelse" class="description html_content" itemprop="description">
                {{description}}
            </div>
<script>
// Get the content
var descval = document.getElementById('beskrivelse').innerHTML;
// Create the new meta-element
var elm = document.createElement("meta");
elm.setAttribute("property", "og:description") 
elm.setAttribute("content", descval);
// Append the element to the HEAD
document.getElementsByTagName("head")[0].appendChild(elm);
</script>

您将JavaScript放在文档中的什么位置?确保在结束之前,或者至少在包含描述的div之后,将其放置在页面底部,以确保在执行脚本时元素位于DOM中。另外,从一开始您的DOM中是否有一个属性为og:description的元元素,或者您是否需要创建它而不是搜索它?我以前已经将它放在页面底部了。它不会改变任何事情。但如果我可以创建一个,而不是更改内容,我就可以了。我不确定该网站是否会允许这样做,因为它会在找不到任何meta.Wierd时创建自己的meta。无论我尝试什么,它都不会添加或编辑任何内容。甚至在JSFIDLE上。这部分根本没变。即使使用了旧代码和新代码。@user3760157我已经将它放在了一起,它确实可以工作。您是否使用浏览器devtools的DOM检查器,而不仅仅是查看源代码?源永远不会更新,它只包含服务器提供的内容。你必须使用一个开发者工具来保持对当前DOM的实时更新,才能看到更改。我认为问题在于,该站点在激活javascript后创建了内容。因此它不会改变任何东西,因为内容是在之后创建的,因此不会发生任何事情。