2017-03-31 100 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樹中),但對於我來說,使用這種方法來代碼更簡單,因爲它只是一個工具爲我生成靜態頁面。