所以我正在为购物车放弃实施一个javascript实现。我运行的一个脚本是购物车,但问题是我使用的是asp.net webforms。如果我使用asp文字,脚本不会触发。该文本只是针对该属性进行了更改,但它不会触发。
当我改变其文本时,我应该使用什么代替asp文字来立即触发。
更新
我遇到的问题是触发java脚本在文字控件中运行。我该怎么做?
问题是脚本加载了文档,因为此脚本是由于之后的某些用户事件而创建的,所以我需要以某种方式运行该文字后面的代码。
第二次更新: 我想我需要验证输出到literal.text的脚本文本是否实际上是正确的格式,然后深入研究,如果这不是我的问题的根本原因。
以下是创建脚本的原因... Listrakawesome是asp文字:
StringBuilder coollistrak = new StringBuilder();
coollistrak.AppendLine("<script>(function(d) {if(document.addEventListener) document.addEventListener('ltkAsyncListener', d);else{e=document.documentElement; e.ltkAsyncProperty = 0; e.attachEvent('onpropertychange',function(e){if(e.propertyName=='ltkAsyncProperty'){d();}});}})(function(){/********** Begin Custom Code **********/");
foreach (CartItem ci in cart.CartItems)
{
string relPath = ci.ProductPicURL.Substring(ci.ProductPicURL.IndexOf("//") + 2);
relPath = relPath.Substring(relPath.IndexOf("//") + 1);
coollistrak.AppendLine("_ltk.SCA.AddItemWithLinks('" + ci.SKU + "', " + ci.Quantity + ", '" + Math.Round(ci.Price, 2).ToString() + "', '" + ci.VariantName + "', '" + relPath + "','" + SE.MakeProductVariantLink(ci.VariantID, SE.GetVariantSEName(ci.VariantID)) + "');");
}
coollistrak.AppendLine("_ltk.SCA.Submit();/********** End Custom Code **********/});</script>");
Listrakawesome.Text = coollistrak.ToString().Replace("\r\n", "");
这是输出到literal.text的内容:
"<script>(function(d) {if(document.addEventListener) document.addEventListener('ltkAsyncListener', d);else{e=document.documentElement; e.ltkAsyncProperty = 0; e.attachEvent('onpropertychange',function(e){if(e.propertyName=='ltkAsyncProperty'){d();}});}})(function(){/********** Begin Custom Code **********/_ltk.SCA.AddItemWithLinks('sku', qty, 'price', 'productname', 'imglink','pagelink');_ltk.SCA.Submit();/********** End Custom Code **********/});</script>"
问题:一般来说,每当我更改包含脚本的literal.text时,该脚本是否应该在发生时起作用或触发,或者是否需要额外的步骤?
答案 0 :(得分:0)
我的问题主要是我没有把它放在pageload事件的上下文中。这样做解决了我想要完成的任务,但并没有解决原来的问题。最终要解决这个问题,我需要重新安排在c#文件中访问该函数的方式。
然而,页面加载解决方案适用于我的目的。