Javascript 函数未定义,但显示在页面源中
我有一个函数,当用户单击按钮时调用。Firebug一直告诉我函数未定义,但代码在标题中:Javascript 函数未定义,但显示在页面源中,javascript,ajax,Javascript,Ajax,我有一个函数,当用户单击按钮时调用。Firebug一直告诉我函数未定义,但代码在标题中: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<meta name="keywords" content="Wildberry,Incense,Coconut,100Pcs" />
<meta name="description" content="A true coconut fragrance.It's part of our 'Fruits' Fragrance Family." />
<link href="css/style.css" rel="stylesheet" type="text/css" />
<title>The Realms of Wickedry • Wildberry Incense Coconut 100Pcs</title>
<link rel="stylesheet" type="text/css" href="css/shadowbox.css" />
<script type="text/javascript" src="js/shadowbox.js"></script>
<script type="text/javascript">
Shadowbox.init({
handleOversize: "drag",
modal: true
});
var ajaxRequest;
var url = "ajax.php";
try{
// Opera 8.0+, Firefox, Safari
ajaxRequest = new XMLHttpRequest();
} catch (e){
// Internet Explorer Browsers
try{
ajaxRequest = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try{
ajaxRequest = new ActiveXObject("Microsoft.XMLHTTP");
} catch (e){
// Something went wrong
alert("Your browser broke!");
return false;
}
}
}
function cartRemove(id)
{
ajaxRequest.onreadystatechange = function()
{
if(ajaxRequest.readyState == 4 && ajaxRequest.status == 200){
document.getElementById('cart').innerHTML = ajaxRequest.responseText;
}
}
var params = "mode=cartremove&id=" + id;
ajaxRequest.open("POST", url, true);
ajaxRequest.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
ajaxRequest.setRequestHeader("Content-length", params.length);
ajaxRequest.setRequestHeader("Connection", "close");
ajaxRequest.send(params);
}
function wishRemove(id)
{
ajaxRequest.onreadystatechange = function()
{
if(ajaxRequest.readyState == 4 && ajaxRequest.status == 200){
document.getElementById('wishlist').innerHTML = ajaxRequest.responseText;
}
}
var params = "mode=wishremove&id=" + id;
ajaxRequest.open("POST", url, true);
ajaxRequest.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
ajaxRequest.setRequestHeader("Content-length", params.length);
ajaxRequest.setRequestHeader("Connection", "close");
ajaxRequest.send(params);
}
function addReview(id)
{
var u = 2;
var review = document.review.reviewContent.value;
ajaxRequest.onreadystatechange = function()
{
if(ajaxRequest.readyState == 4 && ajaxRequest.status == 200)
{
document.getElementById('reviews_div').innerHTML = ajaxRequest.responseText;
}
}
var params = "mode=reviews&id=" + id + "&u=" + u + "&reviewContent=" + review;
ajaxRequest.open("POST", url, true);
ajaxRequest.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
ajaxRequest.setRequestHeader("Content-length", params.length);
ajaxRequest.setRequestHeader("Connection", "close");
ajaxRequest.send(params);
}
function wishAdd(id)
{
ajaxRequest.onreadystatechange = function()
{
if(ajaxRequest.readyState == 4 && ajaxRequest.status == 200){
document.getElementById('wishlist').innerHTML = ajaxRequest.responseText;
}
}
var params = "mode=wishlist&id=" + id;
ajaxRequest.open("POST", url, true);
ajaxRequest.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
ajaxRequest.setRequestHeader("Content-length", params.length);
ajaxRequest.setRequestHeader("Connection", "close");
ajaxRequest.send(params);
}
function shareWish()
{
window.open("./../shop/pages/share_pop.php","Share Wishlist","menubar=0,resizable=0,location=0,width=550,height=300");
}
function checkList()
{
var email_list = document.getElementById['email_list'].innerHTML;
if(email_list == '')
{
return;
}
else
{
var urlStr = '';
var emails = email_list.replace(/^\s+|\s+$/g,"");
emails = emails.split(",");
var count = emails.length;
var i = 0;
while(i <= count)
{
urlStr += "&email"+i+"="+emails[i];
}
ajaxRequest.onreadystatechange = function()
{
if(ajaxRequest.readyState == 4 && ajaxRequest.status == 200){
document.getElementById('share_results').innerHTML = ajaxRequest.responseText;
}
}
var params = "mode=share_wish"+urlStr;
ajaxRequest.open("POST", url, true);
ajaxRequest.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
ajaxRequest.setRequestHeader("Content-length", params.length);
ajaxRequest.setRequestHeader("Connection", "close");
ajaxRequest.send(params);
}
}
</script>
</head>
<body>
<div id="maincontainer">
<div id="topsection">
<div class="innertube">
<div id="header_img">
<a style="border:none!important;" href="./../shop/index.php"><img style="border:none!important;" src="http://xxxxxxxxxxxx/shop/images/Wickedry.png" alt="header_img" /></a>
</div>
<div id="header_nav">
<a class="nav_links" href="./../shop/index.php">Home</a>
<a class="nav_links" href="./../shop/login.php?mode=logout&sid=c02fc022a1553cc34964448194c9d20b">Logout [Chaos Creator]</a>
<a class="nav_links" href="./../shop/cart.php">View Cart</a>
<a class="nav_links" href="./../shop/view.php?mode=wishlist">View Wishlist</a>
</div>
</div>
</div> <div id="contentwrapper">
<div id="contentcolumn">
<div class="innertube">
<div id="titleBar">
<div id="breadcrumb">
<a href="./../shop/view.php?mode=cat&id=15">Health & Beauty</a> >> <a href="./../shop/view.php?mode=subcat&id=67"> Candles</a> </div>
<div id="prod_title">
<h1>Wildberry Incense Coconut 100Pcs</h1>
</div>
</div>
<div id="prod_wrap">
<div id="prod_img">
<a class="prod_img_link" href="./images/products/large/GL5325.jpg" rel="shadowbox;title=Wildberry Incense Coconut 100Pcs;">
<img class="prod_img" src="http://xxxxxxxxx/shop/images/products/thumbs/GL5325.jpg" alt="Wildberry Incense Coconut 100Pcs" />
</a>
</div>
<div id="prod_desc">
<p>A true coconut fragrance.It's part of our 'Fruits' Fragrance Family.</p>
</div>
</div>
<br />
<div id="details">
<div id="prod_details">
Manufactured by: Wild Berry<br />
Model: GL5325<br />
</div>
<div id="prod_price">
$9.75 </div>
<div id="quantity">
<form method="post" action="./../shop/view.php?mode=prod&add_id=3806">
<input type="hidden" name="id" value="3806" />
<input type="text" name="quantity" value="0" onfocus="this.value='';" size="3" />
<input class="btn" type="submit" name="submit" value="Add to Cart" />
</form>
</div>
<br />
<br />
<a class="wish" href="#" onclick="wishAdd(3806);">Add to Wish List</a><br />
<br />
<br />
<strong>Add a Review:</strong><br />
<form action="" method="post" name="review">
<textarea cols="50" rows="10" name="reviewContent" id="reviewContent"></textarea><br />
<input type="submit" class="btn" name="review_submit" id="review_submit" onclick="addReview(3806);" value="Submit!" />
</form>
<br /><br /><div name="reviews_div"><p style="text-alignment:center;">There are no reviews for this item. Be the first to add one!</p></div> </div>
</div>
</div>
</div> <div id="leftcolumn">
<div class="innertube">
<div style="border: 1px solid white;">
<div class="innertube">
<div id="search">
<h2>Search</h2>
<table cellpadding="5" cellspacing="1" class="searchBox" width="100%">
<tr>
<td align="center">
<form method="get" action="http://search.atomz.com/search/">
<table>
<tr>
<td align="center">
<input type="hidden" name="sp_a" value="sp10049097" />
<input size="25" name="sp_q" />
</td>
</tr>
<tr>
<td align="center">
<input type="submit" value="Search" class="btn" />
</td>
</tr>
</table>
<input type="hidden" name="sp_p" value="all">
<input type="hidden" name="sp_f" value="UTF-8">
</form>
<br />
<a href="./../shop/search.php">Advanced Search</a>
</td>
</tr>
</table>
</div> </div>
</div>
<div style="border: 1px solid white;margin-top: 10px;">
<div class="innertube">
<div id="menu">
<h2>Categories</h2>
</div> </div>
</div>
</div>
</div> <div id="rightcolumn">
<div class="innertube">
<div style="border: 1px solid white;">
<div class="innertube">
Welcome back, Chaos Creator!<br />
<a href="<b>[phpBB Debug] PHP Notice</b>: in file <b>/shop/pages/blocks/login_box.php</b> on line <b>27</b>: <b>Undefined variable: u_profile</b><br />
">My Account</a><br />
<a href="./../shop/cart.php">View Cart</a><br />
<a href="./../shop/view.php?mode=wishlist">View Wishlist</a><br />
</div>
</div>
<div style="border: 1px solid white;margin-top: 10px;">
<div class="innertube">
<h2>My Shopping Cart</h2>
<div id="cart">
You have no items in your cart! </div><br />
</div>
</div>
<div style="border: 1px solid white;margin-top: 10px;">
<div class="innertube">
<h2>My Wishlist</h2>
<div id="wishlist">
You have no items in your wishlist! </div> </div>
</div>
</div>
</div> <div id="footer">
© 2010-2011 by <a href="http://www.xxxxxxxx.com/">xxxxxxxxxxxxxx</a><br />
Search Powered by <a href="http://www.sphider.eu/"><img src="http://xxxxxxxxxxxxx/shop/images/sphider-logo.png" border="0" style="vertical-align: middle" alt="Sphider"></a>
</div>
</div>
</body>
</html>
维克德里和布尔的王国;野莓香椰子100件
Shadowbox.init({
handleOversize:“拖动”,
莫代尔:对
});
var ajaxRequest;
var url=“ajax.php”;
试一试{
//Opera 8.0+、Firefox、Safari
ajaxRequest=新的XMLHttpRequest();
}捕获(e){
//Internet Explorer浏览器
试一试{
ajaxRequest=newActiveXObject(“Msxml2.XMLHTTP”);
}捕获(e){
试一试{
ajaxRequest=新的ActiveXObject(“Microsoft.XMLHTTP”);
}捕获(e){
//出了点问题
警告(“你的浏览器坏了!”);
返回false;
}
}
}
功能删除(id)
{
ajaxRequest.onreadystatechange=函数()
{
if(ajaxRequest.readyState==4&&ajaxRequest.status==200){
document.getElementById('cart').innerHTML=ajaxRequest.responseText;
}
}
var params=“mode=cartremove&id=”+id;
打开(“POST”,url,true);
setRequestHeader(“内容类型”,“应用程序/x-www-form-urlencoded”);
ajaxRequest.setRequestHeader(“内容长度”,参数长度);
setRequestHeader(“连接”、“关闭”);
ajaxRequest.send(参数);
}
函数wishRemove(id)
{
ajaxRequest.onreadystatechange=函数()
{
if(ajaxRequest.readyState==4&&ajaxRequest.status==200){
document.getElementById('wishlist').innerHTML=ajaxRequest.responseText;
}
}
var params=“mode=wishremove&id=”+id;
打开(“POST”,url,true);
setRequestHeader(“内容类型”,“应用程序/x-www-form-urlencoded”);
ajaxRequest.setRequestHeader(“内容长度”,参数长度);
setRequestHeader(“连接”、“关闭”);
ajaxRequest.send(参数);
}
功能addReview(id)
{
var u=2;
var review=document.review.reviewContent.value;
ajaxRequest.onreadystatechange=函数()
{
if(ajaxRequest.readyState==4&&ajaxRequest.status==200)
{
document.getElementById('reviews\u div')。innerHTML=ajaxRequest.responseText;
}
}
var params=“mode=reviews&id=“+id+”&u=“+u+”&reviewContent=“+review;
打开(“POST”,url,true);
setRequestHeader(“内容类型”,“应用程序/x-www-form-urlencoded”);
ajaxRequest.setRequestHeader(“内容长度”,参数长度);
setRequestHeader(“连接”、“关闭”);
ajaxRequest.send(参数);
}
函数wishAdd(id)
{
ajaxRequest.onreadystatechange=函数()
{
if(ajaxRequest.readyState==4&&ajaxRequest.status==200){
document.getElementById('wishlist').innerHTML=ajaxRequest.responseText;
}
}
var params=“mode=wishlist&id=”+id;
打开(“POST”,url,true);
setRequestHeader(“内容类型”,“应用程序/x-www-form-urlencoded”);
ajaxRequest.setRequestHeader(“内容长度”,参数长度);
setRequestHeader(“连接”、“关闭”);
ajaxRequest.send(参数);
}
函数shareWish()
{
window.open(“../../shop/pages/share_pop.php”,“共享愿望列表”,“菜单栏=0,可调整大小=0,位置=0,宽度=550,高度=300”);
}
功能检查表()
{
var email_list=document.getElementById['email_list'].innerHTML;
如果(电子邮件列表=='')
{
回来
}
其他的
{
var urlStr='';
var emails=email_list.replace(/^\s+|\s+$/g,“”);
电子邮件=电子邮件。拆分(“,”);
var count=电子邮件长度;
var i=0;
虽然(我做了一些修改,但没有什么问题,希望这有帮助
<!doctype html>
<html>
<head>
<script>
Element.prototype.postAjax = function (params, url) {
var ajaxRequest;
try {
// Opera 8.0+, Firefox, Safari
ajaxRequest = new XMLHttpRequest();
}
catch (e) {
// Internet Explorer Browsers
try {
ajaxRequest = new ActiveXObject ("Msxml2.XMLHTTP");
} catch (e) {
try {
ajaxRequest = new ActiveXObject ("Microsoft.XMLHTTP");
}
catch (e) {
// Something went wrong
alert("Your browser broke!");
return false;
}
}
}
ajaxRequest.open ("POST", url, true);
ajaxRequest.setRequestHeader ("Content-type", "application/x-www-form-urlencoded");
ajaxRequest.setRequestHeader ("Content-length", params.length);
ajaxRequest.setRequestHeader ("Connection", "close");
ajaxRequest.send (params);
var _this = this;
ajaxRequest.onreadystatechange = function () {
if (ajaxRequest.readyState === 4) {
if (ajaxRequest.status === 200) {
_this.innerHTML = ajaxRequest.responseText;
}
else {
alert ("Error, please try again.");
}
}
}
}
window.addEventListener ("load", function () {
var button = document.getElementsByTagName ("input")[0];
var id = 1; // Don't know where you get it
var wishlist = document.getElementById ("wishlist");
button.addEventListener ("click", function () {
wishlist.postAjax ("mode=wishlist&id=" + id, "ajax.php");
}, false);
}, false);
</script>
<title></title>
</head>
<body>
<input type = "button" value = "Click me man !" />
<div id = "wishlist"></div>
</body>
</html>
这是我现在能做的最多的了,剩下的就看你了。哪个函数没有定义?请在调用函数和包含此JS片段的地方发布HTML为什么在警报(“你的浏览器坏了!”)后返回false
;
?您不在函数中,或者是吗?这可能是由于函数中的语法错误造成的。如果可以,请使用Firebug或类似的方法来查看发生了什么。Darin有一个很好的观点。如果浏览器在无效的“return false”上失败,则不会定义wishAdd函数外部。在firefox中运行代码,并查看错误控制台中的“Return在函数外部”看起来不错,但是我如何设置它来处理不同onclick事件的多个函数?@caio我已经准备好将一个项目添加到我的愿望列表中,但是删除它会导致愿望列表完全消失,并且愿望条目不会从数据库中删除。但是Firebug中没有错误。原始帖子会用新代码更新…如果你让我来解决你的问题你的代码将被完全更改,也许你不会理解,好吗?@caio好的。你能举一个例子说明如何处理多个onclick事件吗?@caio如果所有onclick事件都在按钮上,但有些是链接和其他按钮,它们都做不同的事情,那么你的编辑就可以了。继续e所有按钮或所有链接的操作都不起作用。
<!doctype html>
<html>
<head>
<script>
Element.prototype.postAjax = function (params, url) {
var ajaxRequest;
try {
// Opera 8.0+, Firefox, Safari
ajaxRequest = new XMLHttpRequest();
}
catch (e) {
// Internet Explorer Browsers
try {
ajaxRequest = new ActiveXObject ("Msxml2.XMLHTTP");
} catch (e) {
try {
ajaxRequest = new ActiveXObject ("Microsoft.XMLHTTP");
}
catch (e) {
// Something went wrong
alert("Your browser broke!");
return false;
}
}
}
ajaxRequest.open ("POST", url, true);
ajaxRequest.setRequestHeader ("Content-type", "application/x-www-form-urlencoded");
ajaxRequest.setRequestHeader ("Content-length", params.length);
ajaxRequest.setRequestHeader ("Connection", "close");
ajaxRequest.send (params);
var _this = this;
ajaxRequest.onreadystatechange = function () {
if (ajaxRequest.readyState === 4) {
if (ajaxRequest.status === 200) {
_this.innerHTML = ajaxRequest.responseText;
}
else {
alert ("Error, please try again.");
}
}
}
}
window.addEventListener ("load", function () {
var button = document.getElementsByTagName ("input")[0];
var id = 1; // Don't know where you get it
var wishlist = document.getElementById ("wishlist");
button.addEventListener ("click", function () {
wishlist.postAjax ("mode=wishlist&id=" + id, "ajax.php");
}, false);
}, false);
</script>
<title></title>
</head>
<body>
<input type = "button" value = "Click me man !" />
<div id = "wishlist"></div>
</body>
</html>
document.body.addEventListener ("click", function (event) {
var target = event.target;
if (target.nodeName === "INPUT") {
if (target.getAttribute ("type") === "button") {
// Every single button inside your document
}
}
}, false);