2016-11-29 53 views
0

我有一個變量(串),在其中例如有這樣的文字:運行JavaScript字符串的代碼裏面的Javascript

"document.getElementById('tekst').innerHTML = 'Probeer opnieuw!';" 

我使用Ajax和PHP這個變量,而不是在那裏我的(可能很容易)問題是關於。

說我想使用此代碼作爲代碼本身,而不是一個字符串,所以而不是這是一個字符串,我希望它的代碼執行。

我該如何做到這一點?

在此先感謝

回答

3

不要這樣做。 It's a security nightmare

如果你真的必須這樣做,使用eval()如:

eval("document.getElementById('tekst').innerHTML = 'Probeer opnieuw!';"); 

考慮您的示例和解釋,我懷疑你是檢索鏈接,其內容完全由JavaScript代碼。你遇到的問題是你用來檢索該URL的方法給你一個包含該javascript的字符串。我相信它的目的是爲了代替使用<script>元素來加載該代碼。這樣做動態:

var script = document.createElement("script"); 
script.src = "url/to/your/javascript"; 
document.getElementByTagName('body')[0].appendChild(script); 
1

可以使用eval()方法。但是,如果你不必這樣做,不要這樣做。如果你必須,確保你知道你在做什麼。

eval("document.getElementById('tekst').innerHTML = 'Probeer opnieuw!';") 
0

下面是使用eval()替代:

var stringContainingJavascript = "document.getElementById('tekst').innerHTML = 'Probeer opnieuw!';" 

var body = document.getElementsByTagName('body')[0]; 

var paragraph = document.createElement('p'); 
paragraph.id = 'tekst'; 
body.appendChild(paragraph); 

var script = document.createElement('script'); 
var scriptText = document.createTextNode(stringContainingJavascript); 
script.appendChild(scriptText); 
body.appendChild(script); 

上面的腳本創建<p>元件並給它id="tekst",追加<p>到文檔的<body>之前。

然後,在將<script>附加到文檔的<body>之前,相同的腳本創建<script>元素並將字符串附加到該元素。