如何在 ColdFusion 中用 AJAX 替换 iframe
Posted
技术标签:
【中文标题】如何在 ColdFusion 中用 AJAX 替换 iframe【英文标题】:How to replace iframe with AJAX in ColdFusion 【发布时间】:2018-01-19 17:44:24 【问题描述】:我正在使用 ColdFusion 代码,在我的代码中,我的代码是使用 ColdFusion 在表中构建的,我在其中设置变量并创建查询,然后我在 iframe 中传递该变量并打开我的通过 iframe 在我的 questionbuilder.cfm 页面中调用 question.cfm 的其他页面。如何替换我的代码并使用 AJAX 执行此操作,因为我必须删除 iframe 并使用 AJAX 和 Bootstrap?
<div class="greyborder mediumtext" style="height:expression(document.body.clientHeight-document.getElementById('topBar').scrollHeight-40)" id="divPaths">
<cfset builderURL="#request.DomainProtocol##request.DomainURL##ChangeManagerHome#question.cfm?processid=#processid#&category=#category#" />
<cfif isDefined("URL.pView")>
<cfset builderURL = builderURL & "&pView=#URL.pView#" />
</cfif>
<cfif isDefined("mode") and (mode eq "Add" or mode eq "Edit")>
<cfset builderURL = builderURL & "&mode=#mode#" />
</cfif>
<cfif isDefined("maxrows") and IsNumeric(maxrows) and maxrows gt 0>
<cfset builderURL = builderURL & "&maxrows=#maxrows#" />
</cfif>
<cfif isDefined("pathID") and IsNumeric(pathID) and pathID gt 0>
<cfset builderURL = builderURL & "&pathID=#pathID#" />
</cfif>
<cfif isDefined("qnID") and IsNumeric(qnID)>
<cfset builderURL = builderURL & "&qnID=#qnID#" />
</cfif>
<cfif isDefined("pqn") and IsNumeric(pqn)>
<cfset builderURL = builderURL & "&pqn=#pqn#" />
</cfif>
<cfif isDefined("topt") and IsNumeric(topt)>
<cfset builderURL = builderURL & "&topt=#topt#" />
</cfif>
<cfoutput>
<iframe src="#builderURL#" name="ifrShowQuestionBuilder" id="ifrShowBuilder" frameborder=0 ></iframe>
</cfoutput>
</div>
【问题讨论】:
编写一个 cfc,其中包含所有可以在 iframe 中运行的代码。使用 ajax 调用该 cfc 和 javascript 的适当方法以对页面内容进行任何必要的更改。 【参考方案1】:我猜你正在寻找这样的东西。 使用以下代码创建一个新的 cfm 文件,确保它与您的 question.cfm 文件位于同一文件夹中,然后对其进行测试。
<cfset builderURL="question.cfm?processid=1&category=2&etc=3..." />
<!DOCTYPE html>
<html lang="en">
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
<script>
$(document).ready(function ()
$('#manual_trigger').click(function()
$('#divPaths').load("<cfoutput>#builderURL#</cfoutput>");
);
);
</script>
</head>
<body>
<button id="manual_trigger">load</button> <br><br>
<div id="divPaths"> </div>
</body>
</html>
【讨论】:
以上是关于如何在 ColdFusion 中用 AJAX 替换 iframe的主要内容,如果未能解决你的问题,请参考以下文章
Flex Ajax Bridge,或任何其他带有 ColdFusion 的推送方法?
通过 AJAX 进行 Coldfusion/Lucee 多条件选择