在下面的代码中,
$item->setAttribute('onclick','target_popupAFB(this)');
让我头疼,它写了值target_popupAFB(this),但它没有写出名字。结果是=" target_popupAFB(this)"
我是使用DOM的新手
$dom = new DOMDocument();
$dom->loadHTML($doc);
$dom->preserveWhiteSpace = false;
$links = $dom->getElementsByTagName('a');
foreach ($links as $item)
{
$tempsrc=$item->getAttribute("href");
if(substr($tempsrc,-4)==".mp3")
{
$item->removeAttribute('target');
$item->setAttribute('target','msp');
}
$tempta=$item->getAttribute("target");
if($tempta!=="msp")
{
$item->removeAttribute('target');
$item->setAttribute('target','_blank');
}
if(substr($tempsrc,-4) ==".jpg" || substr($tempsrc,-4) ==".bmp" || substr($tempsrc,-4) ==".gif" || substr($tempsrc,-4) == ".png")
{
$imgA=explode("/",$tempsrc);
$c=count($imgA);
if($imgA[1]=="AFBEELDINGEN" && $imgA[0]=="..")
{
$img=end($imgA);
$item->setAttribute('href','http://'.$_SERVER['SERVER_NAME'].'/AFBEELDINGEN/afb.php?img=' .$img);
$item->setAttribute('onclick','target_popupAFB(this)');
}
}
}
$doc = $dom->saveHTML();
答案 0 :(得分:0)
这不是主要内容:{qq} https://developer.mozilla.org/fr/docs/DOM/element.setAttribute,你没有删除属性并设置一个新属性。如果存在,setAttribute将覆盖attribut。
当你想要添加事件而不是addEventListener(doc:https://developer.mozilla.org/fr/docs/DOM/element.addEventListener)时,你应该使用setAttribut。 很高兴它的帮助。 GL