10/10/2018, 10:05

biến javascript liệu có thể chứa javascript khác ?

mình gặp vấn đề sau. Mình gọi đoạn javascript thực hiện innerHTML vào một thẻ div, nội dung innerHTML lại là 1 đoạn javascript. Mình đã thử và hok đc, có thể mình sai cú pháp. bạn nào rành js chỉ cho mình với. Dưới đây là code đơn giản nhất mình thử nhưng hok đc:
Code:
<html>
<head>
<script type="text/javascript">
    var v1=0;
    var sAds1 = new String();
    sAds1 = "<script type="text/javascript"> v1++;	</script>";
</script>

</head>
<body>
<div id="div1">
</div>
<script type="text/javascript">
    lementById("div1");
    testdiv.innerHTML = sAds1;
</script>

<script type="text/javascript">
    alert(v1);
</script>
</body>
</html>
trinhdiep viết 12:09 ngày 10/10/2018
không có gì sai đâu. song nếu insert như vậy đoạn js bạn chèn vào sẽ không được thực thi.
Code:
<html>
<head>
<script type="text/javascript">
    var v1=0;
    var 
    sAds1 = "<script type=\"text\/javascript\">v1++<\/script>";
</script>

</head>
<body>
<div id="div1">
</div>
<script type="text/javascript">
    var testdiv = document.getElementById("div1");
var dom = document.createElement("div");dom.innerHTML=sAds1;
    testdiv.appendChild(dom);
</script>

<script type="text/javascript">
   
    alert(v1);
</script>
</body>
</html>
Vô Thin viết 12:21 ngày 10/10/2018
Để đoạn mã JS (cái mà được chứa bên trong biến mà biến này nằm trong một đoạn JS khác) có thể thực thi được thì có lẽ thay vì document.write hay innerHTML gì đó thì ta phải eval("đoạn mã đó ở đây");
loading ... viết 12:14 ngày 10/10/2018
Được gửi bởi superthin
Để đoạn mã JS (cái mà được chứa bên trong biến mà biến này nằm trong một đoạn JS khác) có thể thực thi được thì có lẽ thay vì document.write hay innerHTML gì đó thì ta phải eval("đoạn mã đó ở đây");
Minh muốn ghi đoạn ads code vào thẻ div đó mà ads code thì chứa js hix. Bạn có thể test lun cách bạn nói ở trên giúp mình đc hok mình đã thử rất nhìu kỉu gòy mà hok đc. đây là ads code:
Code:
<!-- Begin: Black Label Ads, Generated: 2010-01-26 20:53:02  -->
<script type="text/javascript">
var AdBrite_Title_Color = '0000FF';
var AdBrite_Text_Color = '000000';
var AdBrite_Background_Color = 'FFFFFF';
var AdBrite_Border_Color = 'ffd595';
var AdBrite_URL_Color = '2BA94F';
try{var AdBrite_Iframe=window.top!=window.self?2:1;var AdBrite_Referrer=document.referrer==''?document.location:document.referrer;AdBrite_Referrer=encodeURIComponent(AdBrite_Referrer);}catch(e){var AdBrite_Iframe='';var AdBrite_Referrer='';}
</script>
<script type="text/javascript">document.write(String.fromCharCode(60,83,67,82,73,80,84));document.write(' src="http://ads.adbrite.com/mb/text_group.php?sid=1344100&zs=3330305f323530&ifr='+AdBrite_Iframe+'&ref='+AdBrite_Referrer+'" type="text/javascript">');document.write(String.fromCharCode(60,47,83,67,82,73,80,84,62));</script>
<div><a target="_top" href="http://www.adbrite.com/mb/commerce/purchase_form.php?opid=1344100&afsid=55544" style="font-weight:bold;font-family:Arial;font-size:13px;">Your Ad Here</a></div>
<!-- End: Black Label Ads -->
Làm sao để ads hiện lên đc là okie gòy
thecarpenter viết 12:11 ngày 10/10/2018
Dùng eval để thực thi các câu lệnh Javascript trong 1 biến thì đúng rồi! Nhưng theo bần đạo thì không nên dùng, security là một lý do mà lý do tiếp theo là cấu trúc chương trình không trong sáng => Khó hiểu, khó debug!

======================================
AiTi-Aptechites, ai cũng yêu Nguồn Mở!
hakara viết 12:14 ngày 10/10/2018
có nhiều giải pháp cho bạn khi muốn thao tác với 1 biến khác mà không nhất thiết fai inner ra thêm 1 cái javascript khác để xử lí nó đâu bạn.
ngoc_viet08 viết 12:12 ngày 10/10/2018
đồng ý với hakara , đa số các ngôn ngữ lập trình đều thế.
Bài liên quan
0