2013-12-10 59 views
0

目前我正在使用這個小php腳本來評估頁面上的JavaScript。Javascript eval querystring

編輯

注:這是工作,我只是想避免使用PHP來改變的JavaScript

<script type="text/javascript"> 
<?php 
     include 'n1.inc'; 
     if (isset($_GET['resultado'])) 
     {  
      if($_GET["resultado"] != null){ 
       echo $_GET['resultado']; 
      } 
     } 
     include 'n2.inc'; 
?> 
</script> 

的一部分,我知道這是可以讀取查詢字符串與只有javascript,因爲它已經在以下問題中得到了展示:

How can I get query string values in JavaScript?

JavaScript query string

我曾嘗試用:

<script src="n1.js"></script> 
<script> eval(someQueryStringFunction()); </script> 
<script src="n2.js"></script> 

它給出了一個錯誤作爲查詢字符串的值應該是在功能的中間。

如果你想看看n1.js和n2.js隨意看https://github.com/kyllopardiun/MapaColoracao

+1

只是不使用eval。 lookinto requirejs或簡單的「dom腳本加法器」並查看基本的JS條件。 – dandavis

+2

1.不要使用'eval'。 2.該代碼甚至在做什麼(除了包含文件)?它所做的只是''回聲'null'。 –

+0

我通過querystring獲得了一個javascript函數的一部分。 那麼這段代碼的作用是:1。 包含函數的第一部分 2.獲取結果通過queryString 3.包括功能 – Mansueli

回答

0

在查詢字符串傳遞的JavaScript根本不會atall工作。 Javascript將包含查詢字符串中不允許的字符。

如上所述requirejs將允許您將javascript文件嵌入到頁面DOM中。

eval是一個相當嚴重的安全風險,而不是爲安全原因而推薦。有很多關於爲什麼eval是邪惡的文章。

+0

我使用** document.location =(「index_.php?resultado =」+ encodeURIComponent(jResult)); ** 獲取這些代碼行沒有問題。 – Mansueli

+1

是的,它會編碼你的urlParameter。 不知道你的情況是什麼,建議你添加一個URL參數,然後使用switch語句在你的實際頁面上運行正確的代碼。這種安全風險較少。 –