图片标签获胜't接受src
Image tag won't accept src
在使用JavaScript创建图像标记(和相关单选按钮)后,我正试图使图像以中的值作为源。我从测试和警报输出中发现了以下内容:
-
如果image src是在创建image标签时使用精确的文件路径提供的,它将正确显示图像(例如src="images/0.jpg")。然而,这没有帮助,因为我需要它来处理任何给定的图像,而不是特定的图像。
-
如果在使用包含文件路径的变量创建图像标记时提供图像src,则它根本无法生成图像标记或单选按钮(例如src="+result+'")。
注意:下面的代码中没有最后一个示例。结果是通过将"$.post"部分移动到for循环中"out+="行正下方的行中找到的。
- 如果在创建图像标记时,图像src为空,则会创建图像标记和单选按钮,尽管图像如预期的那样为空。如果之后我尝试使用"getElementByID(imgID).src"来更改图像源,它将无法执行任何操作。(这里的'imgID'只是一个例子,而不是代码所说的)
除此之外,使用警报和将信息转储到div表明comicID被正确发布,并且图像src的文件路径肯定被找到,并且被正确复制到变量"result"中,甚至在创建标记或尝试使用"getElementById"编辑标记之前一行。
在这一点上,我被难住了,我不知道是什么从逻辑上阻止了src的读取。
--
Javascript:
<script>
// Loads the user's comic list from the database.
function loadComic()
{
var xmlhttp = new XMLHttpRequest();
var getID = '<?php echo $_SESSION["userID"]; ?>';
var url = "loadCom.php?userID="+getID;
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState == 4 && xmlhttp.status == 200)
{
loadComicJSON(xmlhttp.responseText);
}
}
xmlhttp.open("GET", url, true);
xmlhttp.send();
}
// JSON parsing for 'loadComic'.
function loadComicJSON(response)
{
var arr = JSON.parse(response);
var i;
var out = "";
document.getElementById("loadList").innerHTML="";
if (arr.length == 0)
{
//Irrelevant manipulation of HTML.
}
else
{
out+="<br>";
for(i = 0; i < arr.length; i++)
{
out += "<hr><br><img name = '" + ('cm' + arr[i].comicID) + "' id='" + ('com' + arr[i].comicID) + "' onclick='resizeThumb(this)' height='100px;' src='' ><input name='comicList' type='radio' id='" + arr[i].comicID + "' value='" + arr[i].comicID + "'>" + arr[i].comicName + " </option><br><br>";
}
document.getElementById("loadList").innerHTML=out;
for(j=0; j< arr.length; j++)
{
tempID = (arr[j].comicID);
$.post("getCover.php", {comicID:tempID}, function(result)
{
document.getElementById("loadList").innerHTML+="<p>"+result+"</p>";
document.getElementById("com"+arr[j].comicID).src = result;
}
);
}
}
}
</script>
PHP(getCover.PHP):
<?php
if (isset($_POST["comicID"]))
{
include_once('includes/conn.inc.php');
$checkID = $_POST["comicID"];
$query = ("SELECT pageLocation FROM page WHERE comicID = '$checkID' ORDER BY pageNum");
$result = mysqli_query($conn, $query);
$row = mysqli_fetch_assoc($result);
print_r($row["pageLocation"]);
}
else
{
$checkID = null;
echo "Error. No comic found.";
}
?>
据我所知,loadList.php运行得很好,所以我没有列出它的代码来保持相关性。
我复制了你的代码并对它进行了一些调整,这样我就可以在没有web服务的情况下运行它,而且它运行得很好。这是我创建的HTML页面:
<!DOCTYPE html>
<html>
<head lang="en">
<meta charset="UTF-8">
<title></title>
<script>
// JSON parsing for 'loadComic'.
function loadComicJSON()
{
var arr = [{comicID: 1},{comicID: 2},{comicID: 3}];
var result = "monkey.jpeg";
var i;
var out = "";
document.getElementById("loadList").innerHTML="";
if (arr.length == 0)
{
//Irrelevant manipulation of HTML.
}
else
{
out+="<br>";
for(i = 0; i < arr.length; i++)
{
out += "<hr><br><img name = '" + ('cm' + arr[i].comicID) + "' id='" + ('com' + arr[i].comicID) + "' onclick='resizeThumb(this)' height='100px;' src='' ><input name='comicList' type='radio' id='" + arr[i].comicID + "' value='" + arr[i].comicID + "'>" + arr[i].comicName + " </option><br><br>";
}
document.getElementById("loadList").innerHTML=out;
for(j=0; j< arr.length; j++)
{
var imgSrc;
tempID = (arr[j].comicID);
document.getElementById("loadList").innerHTML+="<p>"+result+"</p>";
document.getElementById("com"+arr[j].comicID).src = result;
}
}
}
</script>
</head>
<body>
<div id="loadList"></div>
<button onclick="loadComicJSON()">Try it</button>
</body>
</html>
正如您所看到的,我创建了一个JSON对象数组,其中包含comicID,并静态地将图像创建为"monkey.jpeg"。
代码正常工作,因此您传递到loadComicJSON方法的"响应"或POST方法的结果存在问题。
添加几个console.log语句,查看我提到的两个值,您可能会发现问题。
自己解决了这个问题。事实证明,$.post需要是$.get,并且从技术上讲,它需要在循环之外(即在其自身的功能中)才能正常工作。经过几次小调整后,现在效果很好。
- 在Twitter上用ie9中的空白src访问iframe的contentWindow
- Javascript:使用绝对路径设置img src
- 接受不在列表中的值-引导组合框
- 子字符串/正则表达式以获取字符串中保存的 SRC 值
- Javascript将图像src更改为淡入淡出
- 如何使用Angular动态添加iframe-src
- //而不是在src=“”上使用http://"属性
- 使用:new Image()控制加载html.src=html_URL
- 无法使用nodeJS在html中设置Image src
- javascript函数,它接受两个输入:一个对象和一个键,并返回对象中该键的相应值
- 如何动态更改脚本src
- 在不设置协议的情况下,使用javascript/jquery更改iframe-src
- 在ReactJS中重新渲染孩子3次可以接受吗
- http.listen()在运行时接受终端命令
- 图像可以从源<img src=""/>.TEXT可以在没有javascript的情况下从外部
- 在字符串中查找所有图像 src URL 并存储在数组中
- 图片标签获胜't接受src
- Cordova接受<script src=“;myfile.js”>在<头部>
- Socket.IO 接受不存在的 src 标记
- 咕噜咕噜地展开文件,src中可以接受哪些模式