2013-02-08 34 views
6

Tôi đang cố gắng đưa javascript đơn giản vào Google Sites nhưng tôi không nhận được gì khi nhấn nút. Tôi đặt mã bên trong Hộp HTML. Mã hoạt động hoàn hảo khi được thử nghiệm cục bộ. Đây là mã của tôi:Bao gồm javascript tới các trang web của google

<script> 
    function calcul(){ 
    x = parseFloat(document.getElementById("value1").value); 
    y = parseFloat(document.getElementById("value2").value); 
    document.getElementById("answer").innerHTML=x+y; 
    } 
</script> 

<form action="" id="nothing"> 
    <input type="text" id="value1"> 
    <input type="text" id="value2"> 
<input type="button" value="Calculate" id="but" onclick="calcul()" /> 

<p id="answer"></p> 

Có điều gì đó tôi quên làm cho nó hoạt động không?

+0

Bạn có thể cho chúng tôi một liên kết đến các trang web hoạt động? –

+0

Xin lỗi, tôi không thể. Đó là một trang web cá nhân và chủ sở hữu không muốn cung cấp cho acces. – VidalDuval

Trả lời

5

Google Sites thay đổi toàn bộ tập lệnh của bạn. Bạn phải viết mã JavaScript cẩn thận hơn một chút.

Thêm var trước mỗi biến sẽ khắc phục vấn đề của bạn:

<script> 
    function calcul(){ 
    var x = parseFloat(document.getElementById("value1").value); 
    var y = parseFloat(document.getElementById("value2").value); 
    document.getElementById("answer").innerHTML=x+y; 
    } 
</script> 

<form action="" id="nothing"> 
    <input type="text" id="value1"> 
    <input type="text" id="value2"> 
    <input type="button" value="Calculate" id="but" onclick="calcul()" /> 
</form> 

<p id="answer"></p> 

này sẽ làm việc ;-)

+0

Cảm ơn về bit var (và đến @ ben336 để giải thích). Bất hạnh không giải quyết được vấn đề, tôi vẫn không nhận được gì khi nhấp vào nút đó. – VidalDuval

+0

Bạn đã chèn mã vào một hộp HTML chưa? (Chèn -> hộp HTML) –

+0

Thật vậy, tôi đã làm. Lạ ... – VidalDuval

1

Google Sites sẽ lọc ra các hoạt động mà họ xem không an toàn. Một số chi tiết here, nhưng không thể tìm thấy tài liệu chính thức với tìm kiếm nhanh.

Khi một câu trả lời khác đề cập đến, các biến của bạn cần có các khai báo var. Điều này là bắt buộc vì không có điều này, các biến sẽ trở thành toàn cầu vào cửa sổ và có khả năng được sử dụng để thoát khỏi bất kỳ sandbox nào mà Google đang đưa xung quanh các trang web hỗ trợ javascript, có khả năng gây ra mối lo ngại về bảo mật.

Vì vậy, để khắc phục:

var x = parseFloat(document.getElementById("value1").value); 
var y = parseFloat(document.getElementById("value2").value); 
Các vấn đề liên quan