2016-08-20 94 views
1

我最近發佈了一個問題,並建議將其作爲一個答案,但它不工作。爲什麼?JavaScript函數切換功能不工作

<div class="text-center">   
    <embed src="https://www.setasign.com/files/demo-files/pdfs/lenstown/Fact-Sheet.pdf" width="300" height="300" type='application/pdf' id="thePdf"> 
</div> 

<div class="button"> 
    <button class="btn-info" type="button" onclick="switchPdf();">Search</button> 
</div> 

<script> 
function switchPdf() { 
    var fileA = 'https://www.setasign.com/files/demo-files/pdfs/lenstown/Fact-Sheet.pdf', 
     fileB = 'https://www.setasign.com/files/demo-files/pdfs/tektown/Fact-Sheet.pdf', 
     elem = document.getElementById('thePdf'); 

    elem.src = elem.src == fileA ? fileB : fileA; 
} 
</script> 

基本上沒有它加載頁面打開一個默認的PDF,有一次我按一下按鈕我想要的PDF轉換到其它PDF。但它不工作

+0

檢查'elem.src'的值並將其與其他變量進行比較......我懷疑你會得到相同的值... – Rayon

+0

「不工作」是什麼意思?代碼應該很好地切換src屬性,但由於跨源策略,內容可能不會被加載。您在開發控制檯中是否有任何錯誤消息? – Szab

+0

[JavaScript:更改嵌入標籤的src-attribute]的可能重複(http://stackoverflow.com/questions/2493706/javascript-changing-src-attribute-of-a-embed-tag) – WhiteHat

回答

0

變化src屬性上<embed><object>等...
不生效

有新元素

function switchPdf() { 
 
    var fileA = 'https://www.setasign.com/files/demo-files/pdfs/lenstown/Fact-Sheet.pdf', 
 
     fileB = 'https://www.setasign.com/files/demo-files/pdfs/tektown/Fact-Sheet.pdf', 
 
     container = document.getElementById('thePdfContainer'), 
 
     elem = document.getElementById('thePdf'); 
 

 
    var newFile = (elem.src === fileA) ? fileB : fileA; 
 
    
 
    container.innerHTML = '<embed src="' + newFile + '" width="300" height="300" type="application/pdf" id="thePdf">'; 
 

 
    console.log(container.innerHTML); 
 
}
<div id="thePdfContainer" class="text-center">   
 
    <embed src="https://www.setasign.com/files/demo-files/pdfs/lenstown/Fact-Sheet.pdf" width="300" height="300" type='application/pdf' id="thePdf"> 
 
</div> 
 

 
<div class="button"> 
 
    <button class="btn-info" type="button" onclick="switchPdf();">Search</button> 
 
</div>

更換
+0

這有助於大時間和謝謝你解釋它,超級酷:)真的很感激它! – arjwolf