字符串格式化一个必须调用javascript函数的锚点onclick(mvc)

时间:2012-12-06 09:12:48

标签: c# javascript asp.net-mvc

   goog_snippet_vars = function(){
var w = window;
w.google_conversion_id ="xxxxx";
w.google_conversion_label ="xxxxxx";
w.google_conversion_value ="xxxxxx";
},
goog_report_conversion = function(url) {
goog_snippet_vars();
window.google_conversion_format = '3';
window.google_is_call = true;
var opt = new Object();
opt.onload_callback = function() {
if (typeof(url) != 'undefined') {window.location = url;}
}
var conv_handler = window['google_trackConversion'];
if (typeof(conv_handler) == 'function') {conv_handler(opt);}
}
</script>

我正在使用来自服务器的stringbuilder将上面的代码转储到页面(onload)中。 我正在使用string.format从服务器端生成html到网页上没有显示的电话,点击该按钮必须调用上述脚本中的一个功能。我使用下面的代码

string.Format("<a href=\"tel:{0}\" onclick=\"Javascript: goog_report_conversion(tel{0}); return false;\">{0}</a>", PhoneNumber));
一切都很好html适用于电视号码。问题是点击它没有点击该功能,它只是导航到新页面,其中url为href值。

所以请帮助我,如果有任何解决方法.....谢谢......

2 个答案:

答案 0 :(得分:3)

最后我解决了这个问题。主要问题是将参数传递给脚本函数。 我们必须传递一些像goog_report_conversion(567678899);

为此,我使用了regex.replace函数来删除下面的特殊字符

Regex.Replace(sPhone,"[()' '-]","");

并在函数调用的参数位置传递。 现在我生成的html如下所示

<a onclick="Javascript: goog_report_conversion(2818669180); return false;" href="tel:(281) 866-9180">(281) 866-9180</a>

所以,最后我以上述方式解决了我的问题。感谢所有试图帮助我的人......

答案 1 :(得分:0)

请尝试将此作为您的第一个代码段

<script type="text/javascript">
    goog_snippet_vars = function() {
        var w = window;
        w.google_conversion_id ="xxxxx";
        w.google_conversion_label ="xxxxxx";
        w.google_conversion_value ="xxxxxx";
    };
    goog_report_conversion = function(url) {
        goog_snippet_vars();
        window.google_conversion_format = '3';
        window.google_is_call = true;
        var opt = new Object();
        opt.onload_callback = function() {
            if (typeof(url) != 'undefined') {window.location = url;}
        }
        var conv_handler = window['google_trackConversion'];
        if (typeof(conv_handler) == 'function') {conv_handler(opt);}
    };
</script>

对于你的第二个片段,有这样的东西:

string.Format("<a href=\"tel:{0}\" onclick=\"javascript:goog_report_conversion('tel:{0}'); return false;\">{0}</a>", PhoneNumber));

然后,您可以发布您的程序吐出的结果HTML吗? (只是包含其属性的标签就足够了。)

<强>更新: 我认为您的电话号码格式会导致错误。您写道,您的string.Format调用的结果是

<a onclick="Javascript: goog_report_conversion(tel(xxx) xxx-xxxx); return false;" href="tel:(xxx) xxx-xxxx">(xxx) xxx-xxxx</a>

用x代表数字。这有两个问题:

  1. 这是一个JS语法错误,goog_report_conversion(url)的参数应该是一个字符串,类似于goog_report_conversion('tel:xxxxxxxxxx')。此错误还会阻止return false;被执行。

  2. 电话号码格式可能有问题,但我不确定这一点,因为我不确定tel:个网址的格式是什么。您可能应该删除数字中的括号/括号和空格,并遵守我在此处链接的指南:possibly helpful link 1possibly helpful link 2

  3. 更新2 This link可能有用,它描述了“tel:”网址的语法。

    希望有所帮助! :)