2015-09-05 64 views
0

我正在写一个JavaScript应用程序,动态生成按钮,导致用户链接到不同的产品。链接不工作在IE和Firefox与jQuery生成标记

他们看起来像这样:

buttons generated by app

问题是,当他们产生其中包含的链接中铬工作,但不是在IE或Firefox。

这里的HTML:

HTML

<div class="row"> 
    <div class="button-class"> 
    </div> 
</div> 

这是我用来生成它们的代码:

JQUERY

buttons: function(num) { 
    $(".button-class").html("<div class='text-center'><ul class='list-inline'><li><button class='btn btn-success'><a href=" + state.greens[num].website + " target='_blank'>Company Website</a></button></li> <li><button class='btn btn-success' data-toggle='modal' data-target='#myModal'>View the Label</button></li></ul></div>"); 
    if (state.greens[num].link !== false) { 
     $(".button-class ul").append("<li><button class='btn btn-success'><a href=" + state.greens[num].link + " rel='nofollow' target='_blank'>Get It On Amazon</a></button></li>"); 
    } 

    if (state.greens[num].review !== false) { 
     $(".button-class ul").append("<li><button class='btn btn-success'><a href=" + state.greens[num].review + " target='_blank'>Read The Review</a></button></li>"); 
    } 
}, 

按钮为p一个称为显示的对象的艺术,由display.buttons()调用;

这两个if语句检查产品对象中是否存在某些类型的链接,然后将它们附加到UL(如果是ydo)。

按钮可以正确生成,但在Firefox和IE中单击时可能无法打开链接(可能是Safari,但我没有选中)。

更令人困惑的是,生成的html在语义上看起来是正确的。

例如,这是Firefox的调试器显示的HTML是不工作:

firefox debugger

没有道理给我。

如果你想去的页面真人版,你可以在这里看到:superfood picker

然后进入最后一节,上面写着“点击产品的详细信息页面,了解更多”,看起来像这样:

Where to go in app

点击的产品之一,它会带你到我谈论的按钮。

+0

我认为你可以用浏览器的窗口拦截器来解决问题。 Firefox和IE都有了。如果我在答案中发布的解决方案对您不适用,也许您的问题是阻止者。尝试在拦截器白名单中设置目标。 –

回答

2

这不是语义正确的,因为你需要在引号包裹在href

buttons: function(num) { 
    $(".button-class").html("<div class='text-center'><ul class='list-inline'><li><button class='btn btn-success'><a href='" + state.greens[num].website + "' target='_blank'>Company Website</a></button></li> <li><button class='btn btn-success' data-toggle='modal' data-target='#myModal'>View the Label</button></li></ul></div>"); 
    if (state.greens[num].link !== false) { 
     $(".button-class ul").append("<li><button class='btn btn-success'><a href='" + state.greens[num].link + "' rel='nofollow' target='_blank'>Get It On Amazon</a></button></li>"); 
    } 

    if (state.greens[num].review !== false) { 
     $(".button-class ul").append("<li><button class='btn btn-success'><a href='" + state.greens[num].review + "' target='_blank'>Read The Review</a></button></li>"); 
    } 
}, 

注意的,如果你改变双引号代替单引号,反之亦然它是最好的。

+0

在我提供的例子中,href地址被用引号括起来,所以我不理解你的观点。 –

+0

This:'

相关问题