2011-12-05 31 views
0

我有一个网页http://www.replyonline.co.uk/DirectionGroup/xmas/,我试图在其中一个弹出窗口中添加<a href="...">...</a>使HTML在JavaScript内工作

如果你点击第一个红色方块,那里有一个电子邮件地址,我想要超链接。如果我尝试使用HTML超链接它,它完全打破了网站。

我认为这可能与JavaScript的首发上线235

做我利用这个图片弹出中添加HTML:

// opens one image item (fullscreen) 
loadImgPreview = function($item, callback) { 
    var largeSrc = $item.children('img').data('largesrc'), 
    description  = $item.children('span').html(), 
    largeImageData = { 
      src   : largeSrc, 
      description : description 
    } 
}); 

公告中这个.html(),我认为这在图像弹出窗口中启用HTML。

不是真的知道JavaScript,我有点失落了。

帮助表示感谢,谢谢。

+1

你是什么意思“完全破坏网站”?只需将文本'email @ domain.com'更改为:'[email protected]',它应该可以正常工作。 –

+0

请再次刷新该网站。将 Tim

+0

It looks like you're surrounding everything in 'a' anchors, which is bad practice for this exact reason. I would suggest changing the surrounding anchor with a span or div. –

回答

0

首先,您的页面中有多个HTML validation errors用于定义,即<!DOCTYPE html>(HTML 5),请注意它们。

HTML 5允许嵌入元素和块元素(例如div)位于锚内,但不允许其他锚位于内部,并且它显示为导航器的错误。

其次,导航器自动修复这些错误,因此当您在锚点内添加电子邮件链接时,它会通过在您预期之前添加锚点关闭标记(</a>)自动更正。这解释了这个烂摊子。

当你使用jQuery加载项,$ibItems.bind('click.ibTemplate', function(event) {...,我的建议是要改变这些锚<a class="ib-whatever">到:

<div class="ib-whatever"> 

和jQuery调用从$ibItems = $ibWrapper.find('div.ib-main > a')到:

$ibItems = $ibWrapper.find('div.ib-main > div') 

也随之变化style.css line78 from .ib-main a {至:

.ib-main .ib-image, .ib-main .ib-content { 

你会在正确的方向上工作。

希望它有帮助。

0

如果您在网站中创建链接时出现了网站断裂,那么当您使用Javascript创建链接时,它将会分裂。 DOM将没有什么不同。

jQuery中的.html()函数不支持html或其他类型,它是对象HTML的访问器/增变器。 description = $item.children('span').html()正在做的是获取所选元素的HTML,而不是启用或禁用任何类型的功能。有关html()的更多信息,请参阅jQuery API

至于你的问题,我建议看看为什么当你通过纯HTML插入链接时网站崩溃了。