我为contentitem的详细信息页面创建了一个备用视图。
在此视图中,我尝试将facebook commentsplugin添加到此视图中。添加了必要的javascript包括插件工作。
这有效
<div class="fb-comments" data-href="http://*************/@(Model.Header.Parent.ContentItem.AutoroutePart.Path)" data-numposts="1" data-colorscheme="light"></div>
这不是
<div class="fb-comments" data-href="@(Model.Header.Parent.ContentItem.AutoroutePart.Path)" data-numposts="1" data-colorscheme="light"></div>
有没有办法在Orchard Alternate View中获取完整的url,如Request.Url.ToString()?
答案 0 :(得分:1)
可以使用ViewContext
读取<div class="fb-comments" data-href="@(ViewContext.HttpContext.Request.Url.ToString())" data-numposts="1" data-colorscheme="light"></div>
答案 1 :(得分:0)
我的评论插件和类似按钮现在正在使用jQuery中的以下workarround
<div class="fb-comments" data-href="@(Model.Header.Parent.ContentItem.AutoroutePart.Path)" data-numposts="1" data-colorscheme="light"></div>
<div id="fb-root"></div>
<script>
$(function () {
if ($('.fb-comments, .fb-like').length > 0) {
$('.fb-comments, .fb-like').each(function () {
var href = location.protocol + "//" + location.hostname + "/" + $(this).data("href");
$(this).attr("data-href", href);
}).promise().done(includeFacebook);
} else {
includeFacebook();
}
});
function includeFacebook() {
(function (d, s, id) {
var js, fjs = d.getElementsByTagName(s)[0];
if (d.getElementById(id)) return;
js = d.createElement(s); js.id = id;
js.src = "//connect.facebook.net/nl_NL/all.js#xfbml=1&appId=##########";
fjs.parentNode.insertBefore(js, fjs);
} (document, 'script', 'facebook-jssdk'));
}