2

我有一个简单的问题,但作为一个 JavaScript 新手,我不知道如何实现我的发现。

我发现了一个小片段,它使用 JavaScript 提取当前 URL,并将该值加载到变量中:

<script type="text/javascript" language="javascript">
  window.onload = function () {
    var currentUrl = window.location.href;
  }
</script>

所以 的值currentUrl保存当前页面的 URL。

我需要知道的是如何在我的页面 HTML 中使用该值。我尝试使用它的应用程序是 facebook 评论插件。

<div class="fb-comments" data-href="**currentUrl**" data-width="470" data-num-posts="2"></div>
4

3 回答 3

5

给你div一个id:

<div id="fb-comments" class="fb-comments"

然后你可以data-href这样设置:

window.onload = function () {
    var currentUrl = window.location.href;
    document.getElementById("fb-comments").setAttribute("data-href", currentUrl);
}
于 2012-12-17T20:55:39.743 回答
2

在这个特定的问题中,我认为:

// gets all elements of class-name 'fb-comments' from the document
var fbComments = document.getElementsByClassName('fb-comments');

// iterates through each of those elements
for (var i = 0, len = fbComments.length; i<len; i++) {
    // and sets the 'data-href' attribute to be the value held by the
    // the currentUrl variable
    fbComments[i].setAttribute('data-href', currentUrl);
}

对于没有实现的浏览器getElementsByClassName()

// gets all div elements within the document
var divs = document.getElementsByTagName('div');

// iterates through each of those div elements, and
for (var i = 0, len = divs.length; i<len; i++) {
    // if the class attribute contains a string equal to 'fb-comments'
    if (divs[i].className.indexOf('fb-comments') !== -1) {
        // sets the 'data-href' attribute to be equal to the value held
        // by the currentUrl variable
        divs[i].setAttribute('data-href', currentUrl);
    }
}

参考:

于 2012-12-17T20:56:36.783 回答
0

你也许可以做这样的事情 -

<div id="myCommentBox" class="fb-comments" data-href="**currentUrl**" data-width="470" data-num-posts="2"></div>

var element = document.getElementById('myCommentBox');
element.setAttribute("data-href", currentUrl); 

请注意,我给出了<div>anid属性,以便使用getElementById. 请记住,您需要在FB.XFBML.parse()更改data-href属性后调用才能重新呈现评论框。

于 2012-12-17T20:56:12.240 回答