我有一個網站,允許用戶標記圖片。標籤可以被投票。我有兩個選擇標籤的選項:「排序頂部」和「排序新」,這是非常明顯的。當用戶點擊,例如,「新排序」,這個JS函數被調用:在IE和Chrome中使用Javascript獲取背景圖片的問題
<script type="text/javascript">
function sortTagsNew()
{
var sortnew = document.getElementById('sortnew');
var sorttop = document.getElementById('sorttop');
sortnew.style.textDecoration = 'underline';
sorttop.style.textDecoration = 'none';
var filename = document.getElementById('center_frame').style.backgroundImage;
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
document.getElementById("response_caption").innerHTML=xmlhttp.responseText;
}
}
xmlhttp.open("GET","sortnew.php?filename="+filename,true);
xmlhttp.send();
}
</script>
你或許可以告訴大家,那個大IF語句做一個AJAX調用。它指向下面的PHP文件sortnew.php
,該文件在數據庫中查詢該映像下的標記。
$capfilename = $_GET['filename'];
$acturl = substr($capfilename, 6, -3); //extracts filename from the url('')
$new_captions = mysql_query("SELECT * from captions where image = '$acturl' ORDER BY time DESC LIMIT 5");
$caption = array();
while($rows = mysql_fetch_array($new_captions)){
$caption[] = $rows;
// Includes a PHP file that designates how tags should be displayed (uses a foreach), but that's kind of irrelevant.
我認爲問題是,是,IE和Chrome不通過獲得filename
。當我手動爲標籤輸入有效圖像的文件名時,它可以正常工作,但無論出於何種原因,IE和Chrome都不會獲取文件名,因此不會返回任何內容。我想這可能與我如何使用子字符串來提取文件名本身有關。也許Chrome和IE自動獲取文件名,但我找不到任何關於此的信息。請記住它確實在FF中工作。
讓我把你介紹給我的所謂的朋友[鮑比表(http://bobby-tables.com/:它分析和backgroundImage字符串(僅在犀牛測試)
代碼) – DaveRandom 2012-01-02 18:46:17
也許你只是發佈顯示實際要求的網址? – hakre 2012-01-02 18:53:35
http://www.ewsprojects.com/~lyons/new.php – 2012-01-02 19:02:21