【问题标题】:Blogger javascript not working http to httpsBlogger javascript 无法使用 http 到 https
【发布时间】:2019-04-04 02:43:22
【问题描述】:

您好,我刚刚将域从 tecnoriales.win 更改为 tecnoriales.com 并开始使用 SSL (HTTPS)。

我有一个脚本,可以创建我所有帖子的存档,但不再工作了。我对编码知之甚少,所以我一无所知。

这里是代码应该加载的页面:https://www.tecnoriales.com/p/sitemap.html

已经看过一个非常相似的问题:Blogger from http to https (SSL problems) 尝试了他们所说的(或者我认为是这样),但我无法解决问题。

<div style="text-align: justify;">
<span style="font-family: &quot;trebuchet ms&quot; , sans-serif;">A 
continuación tienes la lista de todas las entradas del blog. Recuerda 
que también puedes utilizar la opción Buscar este blog que se encuentra 
en la esquina superior izquierda para indagar.</span><br />
<span style="font-family: &quot;trebuchet ms&quot; , sans-serif;">
</span></div>
<br />
<script type="text/javascript">
function LoadTheArchive(TotalFeed) 
{
    var PostTitles = new Array();
    var PostURLs = new Array();
    var PostYears = new Array();
    var PostMonths = new Array();
    var PostDays = new Array();
    if("entry" in TotalFeed.feed) 
    {
 var PostEntries=TotalFeed.feed.entry.length;
 for(var PostNum=0; PostNum<postentries ; PostNum++) 
 {
     var ThisPost = TotalFeed.feed.entry[PostNum];
     PostTitles.push(ThisPost.title.$t);
     PostYears.push(ThisPost.published.$t.substring(0,4));
     PostMonths.push(ThisPost.published.$t.substring(5,7));
     PostDays.push(ThisPost.published.$t.substring(8,10));
     var ThisPostURL;
     for(var LinkNum=0; LinkNum < ThisPost.link.length; LinkNum++) 
     {
  if(ThisPost.link[LinkNum].rel == "alternate") 
  {
      ThisPostURL = ThisPost.link[LinkNum].href;
      break
  }
     }
     PostURLs.push(ThisPostURL);
 }
    }
    DisplaytheTOC(PostTitles,PostURLs,PostYears,PostMonths,PostDays);
}

function DisplaytheTOC(PostTitles,PostURLs,PostYears,PostMonths,PostDays)
{
    var MonthNames=["Enero","Febrero","Marzo","Abril","Mayo","Junio","Julio","Agosto","Septiembre","Octubre","Noviembre","Diciembre"];
    var NumberOfEntries=PostTitles.length;

    var currentMonth = "";
    var currentYear = "";

    for(var EntryNum = 0; EntryNum < NumberOfEntries; EntryNum++)
    {
 NameOfMonth = MonthNames[parseInt(PostMonths[EntryNum],10)-1]

 if (currentMonth != NameOfMonth || currentYear != PostYears[EntryNum]) {
  currentMonth = NameOfMonth;
  currentYear = PostYears[EntryNum];

  document.write("<div class='dateStyle'><br />" + currentMonth+" "+currentYear+" </div>
");
 }

  document.write('<a href ="'+PostURLs[EntryNum]+'"><div class=dayStyle>
'+parseInt(PostDays[EntryNum],10)+":&nbsp;&nbsp;</div>
"+PostTitles[EntryNum]+"</a><br />");
    }
}
</script>

<script src="https://tecnoriales.com/feeds/posts/default?max-results=500&amp;alt=json-in-script&amp;callback=LoadTheArchive">
<script src="https://tecnoriales.com/feeds/posts/default?max-results=150&start-index=151&alt=json-in-script&callback=LoadTheArchive"/>
<script src="https://tecnoriales.com/feeds/posts/default?max-results=150&start-index=301&alt=json-in-script&callback=LoadTheArchive"/>
<script src="https://tecnoriales.com/feeds/posts/default?max-results=150&start-index=451&alt=json-in-script&callback=LoadTheArchive"/>
<script src="https://tecnoriales.com/feeds/posts/default?max-results=150&start-index=601&alt=json-in-script&callback=LoadTheArchive"/>
<script src="https://tecnoriales.com/feeds/posts/default?max-results=150&start-index=851&alt=json-in-script&callback=LoadTheArchive"/>
<script src="https://tecnoriales.com/feeds/posts/default?max-results=150&start-index=1001&alt=json-in-script&callback=LoadTheArchive"/>

<!--CUSTOMIZATION-->
<style type="text/css">
.dateStyle {
     color:#000;
     font-weight:bold;
     font-size: 15px;
     font-family: Trebuchet MS, sans-serif;
     margin: 0;
}

.dayStyle {
     color:#000;
     font-weight:bold;
     font-family: Trebuchet MS, sans-serif;
     display: inline-block;
}

</style></script>```

It should load the full list of all the blog post I've made categorized by month and year but it loads nothing.

【问题讨论】:

  • &lt;script src="https://tecnoriales.com/feeds/posts/default?max-results=X&amp;alt=json-in-script&amp;callback=LoadTheArchive"&gt; 这样的脚本标签没有结束标签。尝试关闭它们。
  • 尝试禁用 CloudFlare 的 Rocket Loader 功能,看看是否有什么不同
  • @PrayagVerma 禁用它但没有区别。
  • @N'Bayramberdiyev 我在所有 7 个标签的末尾添加了 ,没有任何改变仍然没有加载

标签: javascript ssl https blogger archive


【解决方案1】:

JavaScript 代码中的换行符会导致语法错误。 PostEntries 变量也被引用为 postentries。如下更改 Javascript -

<script>
function LoadTheArchive(TotalFeed) 
{
    var PostTitles = new Array();
    var PostURLs = new Array();
    var PostYears = new Array();
    var PostMonths = new Array();
    var PostDays = new Array();
    if("entry" in TotalFeed.feed) 
    {
 var PostEntries=TotalFeed.feed.entry.length;
 for(var PostNum=0; PostNum<PostEntries ; PostNum++) 
 {
     var ThisPost = TotalFeed.feed.entry[PostNum];
     PostTitles.push(ThisPost.title.$t);
     PostYears.push(ThisPost.published.$t.substring(0,4));
     PostMonths.push(ThisPost.published.$t.substring(5,7));
     PostDays.push(ThisPost.published.$t.substring(8,10));
     var ThisPostURL;
     for(var LinkNum=0; LinkNum < ThisPost.link.length; LinkNum++) 
     {
  if(ThisPost.link[LinkNum].rel == "alternate") 
  {
      ThisPostURL = ThisPost.link[LinkNum].href;
      break
  }
     }
     PostURLs.push(ThisPostURL);
 }
    }
    DisplaytheTOC(PostTitles,PostURLs,PostYears,PostMonths,PostDays);
}

function DisplaytheTOC(PostTitles,PostURLs,PostYears,PostMonths,PostDays)
{
    var MonthNames=["Enero","Febrero","Marzo","Abril","Mayo","Junio","Julio","Agosto","Septiembre","Octubre","Noviembre","Diciembre"];
    var NumberOfEntries=PostTitles.length;

    var currentMonth = "";
    var currentYear = "";

    for(var EntryNum = 0; EntryNum < NumberOfEntries; EntryNum++)
    {
 NameOfMonth = MonthNames[parseInt(PostMonths[EntryNum],10)-1]

 if (currentMonth != NameOfMonth || currentYear != PostYears[EntryNum]) {
  currentMonth = NameOfMonth;
  currentYear = PostYears[EntryNum];

  document.write("<div class='dateStyle'><br />" + currentMonth+" "+currentYear+" </div>");
 }

  document.write('<a href ="'+PostURLs[EntryNum]+'"><div class=dayStyle>'+parseInt(PostDays[EntryNum],10)+":&nbsp;&nbsp;</div>"+PostTitles[EntryNum]+"</a><br />");
    }
}
</script>
<script src="https://tecnoriales.com/feeds/posts/default?max-results=500&amp;alt=json-in-script&amp;callback=LoadTheArchive" />

您会注意到最后 2 个 document.write 语句删除了换行符

【讨论】:

    【解决方案2】:

    实际的问题是你的回调函数没有定义。

    因此,将您的函数定义为function expression。这样,函数定义就存在,回调才能工作。

    var LoadTheArchive = function (TotalFeed)

    var DisplaytheTOC = function (

    运行下面的 sn-p 以查看它的工作情况。加载链接需要一段时间。所以,请耐心等待。

    <div style="text-align: justify;">
      <span style="font-family: &quot;trebuchet ms&quot; , sans-serif;">A 
    continuación tienes la lista de todas las entradas del blog. Recuerda 
    que también puedes utilizar la opción Buscar este blog que se encuentra 
    en la esquina superior izquierda para indagar.</span><br />
      <span style="font-family: &quot;trebuchet ms&quot; , sans-serif;">
    </span></div>
    <br />
    
    <script>
      var LoadTheArchive = function(TotalFeed) {
        var PostTitles = new Array();
        var PostURLs = new Array();
        var PostYears = new Array();
        var PostMonths = new Array();
        var PostDays = new Array();
        if ("entry" in TotalFeed.feed) {
          var PostEntries = TotalFeed.feed.entry.length;
          for (var PostNum = 0; PostNum < PostEntries; PostNum++) {
            var ThisPost = TotalFeed.feed.entry[PostNum];
            PostTitles.push(ThisPost.title.$t);
            PostYears.push(ThisPost.published.$t.substring(0, 4));
            PostMonths.push(ThisPost.published.$t.substring(5, 7));
            PostDays.push(ThisPost.published.$t.substring(8, 10));
            var ThisPostURL;
            for (var LinkNum = 0; LinkNum < ThisPost.link.length; LinkNum++) {
              if (ThisPost.link[LinkNum].rel == "alternate") {
                ThisPostURL = ThisPost.link[LinkNum].href;
                break
              }
            }
            PostURLs.push(ThisPostURL);
          }
        }
        DisplaytheTOC(PostTitles, PostURLs, PostYears, PostMonths, PostDays);
      }
    
      var DisplaytheTOC = function(PostTitles, PostURLs, PostYears, PostMonths, PostDays) {
        var MonthNames = ["Enero", "Febrero", "Marzo", "Abril", "Mayo", "Junio", "Julio", "Agosto", "Septiembre", "Octubre", "Noviembre", "Diciembre"];
        var NumberOfEntries = PostTitles.length;
    
        var currentMonth = "";
        var currentYear = "";
    
        for (var EntryNum = 0; EntryNum < NumberOfEntries; EntryNum++) {
          NameOfMonth = MonthNames[parseInt(PostMonths[EntryNum], 10) - 1]
    
          if (currentMonth != NameOfMonth || currentYear != PostYears[EntryNum]) {
            currentMonth = NameOfMonth;
            currentYear = PostYears[EntryNum];
    
            document.write("<div class='dateStyle'><br />" + currentMonth + " " + currentYear + " </div>");
          }
    
          document.write('<a href ="' + PostURLs[EntryNum] + '"><div class=dayStyle>' + parseInt(PostDays[EntryNum], 10) + ":&nbsp;&nbsp;</div>" + PostTitles[EntryNum] + "</a><br />");
        }
      }
    </script>
    
    <script src="https://tecnoriales.com/feeds/posts/default?max-results=500&amp;alt=json-in-script&amp;callback=LoadTheArchive" />
    <script src="https://tecnoriales.com/feeds/posts/default?max-results=150&start-index=151&alt=json-in-script&callback=LoadTheArchive" />
    <script src="https://tecnoriales.com/feeds/posts/default?max-results=150&start-index=301&alt=json-in-script&callback=LoadTheArchive" />
    <script src="https://tecnoriales.com/feeds/posts/default?max-results=150&start-index=451&alt=json-in-script&callback=LoadTheArchive" />
    <script src="https://tecnoriales.com/feeds/posts/default?max-results=150&start-index=601&alt=json-in-script&callback=LoadTheArchive" />
    <script src="https://tecnoriales.com/feeds/posts/default?max-results=150&start-index=851&alt=json-in-script&callback=LoadTheArchive" />
    <script src="https://tecnoriales.com/feeds/posts/default?max-results=150&start-index=1001&alt=json-in-script&callback=LoadTheArchive" />
    
    <!--CUSTOMIZATION-->
    <style type="text/css">
      .dateStyle {
        color: #000;
        font-weight: bold;
        font-size: 15px;
        font-family: Trebuchet MS, sans-serif;
        margin: 0;
      }
      
      .dayStyle {
        color: #000;
        font-weight: bold;
        font-family: Trebuchet MS, sans-serif;
        display: inline-block;
      }
    </style>

    【讨论】:

    • 感谢它现在加载,但是文本没有格式,CSS 部分不起作用。
    • 为了清楚起见,我将 CSS 与 CSS 部分分开。我只是将 CSS
    • 是的,我意识到,这不是问题所在,只是最后没有应用样式部分。现在,当我单击运行 sn-p 时,您编辑的脚本也不会加载样式,但是您的第一个脚本(您将其分开的地方)确实如此,我按原样工作。
    猜你喜欢
    • 2018-05-02
    • 2020-10-15
    • 2017-05-07
    • 2019-06-10
    • 2020-01-24
    • 2016-08-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多