使用cfdiv绑定时禁用非页内图片
有什么方法可以防止cfdiv刷新时出现"正在加载..."图形?我想防止加载图形然后加载新的html的闪烁。
解决方案
我认为目前没有办法在cfdiv
标签中以编程方式执行此操作。如果我们真的想摆脱该"正在加载..."消息和图像,可以在几个地方查看。
我们可以重命名或者删除映像,该映像位于:CFIDE \ scripts \ ajax \ resources \ cf \ images \ loading.gif
那只会摆脱动画。可以将"正在加载..."文本空白为空字符串,并在以下位置定义:CFIDE \ scripts \ ajax \ messages \ cfmessage.js
做出这些更改显然会影响cfdiv
以外的其他标签,但是如果我们希望在一个地方消除这种行为,我敢肯定我们也不会在其他地方杀死它。 :)
如果其他人有任何想法,我希望看到一种更清洁的方法。
通过在标题的底部添加这些行,它覆盖了" Loading ..." html,似乎防止了IE和FireFox的闪烁效果:
<script language="JavaScript"> _cf_loadingtexthtml=""; </script>
尽管这似乎可以解决问题,但如果有一种正式支持的方法可以在每个页面或者每个控件的基础上自定义加载动画,那就太好了。希望他们在ColdFusion9中增加对此的支持。
我们可以创建函数来更改消息,然后再调用ajax加载,该加载可以将消息和图像设置为新值。
function loadingOrder(){ _cf_loadingtexthtml="Loading Order Form <image src='/CFIDE/scripts/ajax/resources/cf/images/loading.gif'>"; } function loadingNavigation(){ _cf_loadingtexthtml="Loading Menu <image src='/CFIDE/scripts/ajax/resources/cf/images/loading_nav.gif'>"; }
(这些最终将被合并为一个单独的函数,该函数将同时使用text_value和image_path参数)
在加载主导航和左导航cfdiv的某些过程中,我使用如下函数:
function locateCreateOrder(){ loadingOrder(); ColdFusion.navigate('/functional_areas/orders/orders_actions/cf9_act_orders_index.cfm','main_content'); loadingNavigation(); ColdFusion.navigate('/functional_areas/products/products_actions/cf9_products_menu.cfm','left_menu'); }
这绝不是一个全面或者优雅的解决方案,但我发现在相邻元素上使用负边距可以"覆盖"动画。我不知道此方法是否在所有情况下都有效,但是对于我的特定情况而言,它是有效的。动画出现在绑定的文本字段旁边,该字段的右侧是一个提交按钮。该层浮在右边。我在提交按钮上使用了负边距,它覆盖了动画而不影响图层对齐。
我所做的另一项措施是检查层结构,并确保将以下代码添加到CSS中:
#TitleNameloadingicon {visibility:hidden;} #TitleName_cf_button {visibility:hidden;} #TitleNameautosuggest {background-color:#ffffff;}