2013-12-10 41 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语句在你的实际页面上运行正确的代码。这种安全风险较少。 –