Blogger javascript 无法使用 http 到 https

Posted

技术标签:

【中文标题】Blogger javascript 无法使用 http 到 https【英文标题】:Blogger javascript not working http to 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 个标签的末尾添加了 ,没有任何改变仍然没有加载 【参考方案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 时,您编辑的脚本也不会加载样式,但是您的第一个脚本(您将其分开的地方)确实如此,我按原样工作。

以上是关于Blogger javascript 无法使用 http 到 https的主要内容,如果未能解决你的问题,请参考以下文章

提取Blogger.com视频(RTSP或其他方法)

Blogger 寻呼机代码不起作用

Blogger 侧边栏菜单

在 Blogger 中使用悬停文本在一行上创建两个图像

在Blogger / Blogspot中多次重新加载同一页面会降低跳出率?

Blogger上的Facebook“Like”按钮