2017-03-31 64 views
0

我对这个网站不熟悉,但是对Javascript来说是新的,但是我在C编写了一段时间,并且遇到了一个让我大跌眼镜的问题。Javascript anchors quote issue

我想为自己制作一个工具(一个非常简单的代码生成工具)。我想以可显示的方式生成html代码,因为最终产品将是一个静态页面(无javascript)。所以我试图用基本的字符串操作来解决它。

任务和代码非常简单,我只是在这里发布它。 的Javascript其相应标签:

<script> 
 
function ConvertListToGallery() 
 
{ 
 
    var cont = document.getElementById("gallery_generator_input"); 
 
    var eof_link; 
 
    var eof_title; 
 
    var eof_descr; 
 
    var lines = []; 
 
    var tokens = []; 
 
    var i, k; 
 
    var result = document.getElementById("gallery_generator_output"); 
 
    var link; 
 
    var lofasz = []; 
 

 
    if(cont) 
 
    { 
 
     lines = cont.value.split('\n'); 
 

 

 
     lofasz = cont.value.split('"'); 
 

 
     console.log(lofasz[0]); 
 

 
     result.innerHTML = ""; 
 
    
 
     for(i = 0; i < lines.length; i++) 
 
     { 
 
      tokens = lines[i].split(" + "); 
 
      for(k = 0; k < tokens.length; k++) 
 
      { console.log(tokens[k]); } 
 

 
      link = tokens[0]; 
 

 
      result.innerHTML += '<img src=' + link + '/>'; 
 
     } 
 
     document.getElementById("gallery_generator_result").value=result.innerHTML; 
 

 
     document.getElementById("gallery_convert").innerHTML = "Done!"; 
 
     document.getElementById("gallery_convert").onclick = ""; 
 
    } 
 

 
} 
 
</script>

输入:

https://drive.google.com/uc?id=0B3ju3vX1o4OuY0RaaDJKWnlRN1U +标题+ 递减https://drive.google.com/uc?id=0B3ju3vX1o4OuSC1hNFQwUV9IWlE + 标题2 + DESC2

和运行脚本后的输出:

<img src="https://drive.google.com/uc?id=0B3ju3vX1o4OuY0RaaDJKWnlRN1U/"><img src="https://drive.google.com/uc?id=0B3ju3vX1o4OuSC1hNFQwUV9IWlE/"> 

这就像自动将引号放在链接周围。对不起,我已经尝试了很多我现在不记得的东西,但是我记得这个“自动引用”的事情只发生在链接上,它会导致代码中出现各种各样的问题(例如'/'滑入内部引号)。而所有其他问题都是由这种行为引起的(我不能在img标签中分配标题和其他属性)。

额外的HTML:

<form> 
    <textarea id="gallery_generator_input" style = "width:800px;"></textarea></form> 

    <div id="gallery_generator_output" style="border:solid; max-height:500px; overflow:auto;"> 
    </div> 

    <textarea id="gallery_generator_result" style = "width:800px;"></textarea> 

<div onclick = "ConvertListToGallery();" id="gallery_convert">Convert!</div> 

谢谢你的任何提示提前!

编辑:删除误导哇的事情。 所需的结果只是一个有效的html图像代码。

+1

期望的结果是什么?是期望的结果''?尝试这个'result.innerHTML + ='';' – Jpsh

+0

对不起,我不知道该网站是如何工作的。 但你的建议没有奏效,只产生了奇怪的结果。 – Lipko

回答

0

改变这一行

result.innerHTML += '<img src=' + link + '!!WOW>'; 

这个

result.innerHTML += '<img src="' + link + '!!WOW"/>'; 

,你也可以用urlencode的惊叹号,如果他们有一个问题:

result.innerHTML += '<img src="' + link + '%21%21WOW"/>'; 
+0

我同意我认为操作需要显式地添加双引号,但我不确定这是在引用内部具有“!! WOW”的期望修正,因为他在后文中有这个“(例如”!! WOW“滑倒在引号内)。' – Jpsh

+0

我知道我必须添加双引号,但由于文本从一些完全不明确的原因中得到引号,这只会导致其他问题。例如“吞下”/从img标签的末尾,并拧紧任何其他属性,我会在img标签内。 – Lipko

+0

实际上,只有链接文本和关闭>之间的东西被拧紧之后。所以如果在img标签的末尾没有斜线就没关系,那么我会和它一起生活。 – Lipko

0

对不起已故的后续,但事实证明,写入innerHMTL导致了这个问题(我仍然不确定写入innerHTML是否有可能一种模糊的代码固定/完成功能)。如果我在单独的变量中累积HTML,那么将它分配给innerHTML没有问题。

我知道制作这样的动态代码并不是最好的做法(元素不会被添加到DOM树中),但对于我来说,使用这种方法来代码更简单,因为它只是一个工具为我生成静态页面。