+ Start a Discussion
JimmyJayJimmyJay 

VF Page appears to have broke with Winter 14

Page was created by a vendor and getting them to fix it would cost money I would prefer not to spend.

 

Full page below, but the lines I appear to be having an issue with are these:

<a href="{!$currentPage.parameters.retURL}"> <Apex:outputText value="<< Back " rendered="{!if($CurrentPage.parameters.retURL != null, true, false)}" /> </a>
<apex:iframe src="/501/o?isdtp=vw" scrolling="true" height="1152px" width="100%" id="myiframe" rendered="{!if($CurrentPage.parameters.solutionId == null, true, false)}" />
<apex:iframe src="/{!$CurrentPage.parameters.solutionId}?isdtp=vw" scrolling="true" height="1152px" width="100%" id="myiframe2" rendered="{!if($CurrentPage.parameters.solutionId != null, true, false)}"/>

 

The page is meant to display the standard solution tab using isdtp=vw within the visualforce page. The first iframe would display the first page with the search and recently viewed solutions. Once the user clicks on the link of a specific solution in the iframe, the second iframe would become visible showing the selected solution and the first iframe would be hidden. Since the Winter 14 release, clicking a solution name in the first iframe makes the page load for half a second then nothing happens.

 

Going directly to the pages in the iframe using /501/o?isdtp=vw, the links are working just fine.

 

It appears $CurrentPage.parameters.solutionId is not populating with a value anymore, it stays blank when I add it to be displayed on the VF page. I have tried updating the code version on the VF page with no change.

 

 

Full Page(I think the vendor left a lot of garbage in thats not used):

 

<apex:page standardController="Solution" showHeader="false" sidebar="false" standardStylesheets="false" tabStyle="Account" >
<apex:form id="frm" >

<c:Header />
</apex:form>
<html>
<STYLE>
BODY {color: navy}
BODY {scrollbar-face-color: red}
</STYLE>
<style>
.bPageHeader
{
display:none;
}
.head-box {
border-radius: 0px 0px 7px 7px;
-moz-boder-radius: 0px 0px 7px 7px #888;
-webkit-boder-radius: 0px 0px 7px 7px #888;
background: url({!URLFOR($Resource.Images, 'images/head-bg-rou.jpg')}) repeat-x 0 0;
box-boder-radius: 0px 0px 7px 7px #888;
height: 67px;
behavior: url(js/PIE.htc);
}

.alink2{
text-decoration:underline;
}
.alink2:hover{

color:#f0a940;
cursor: pointer; cursor: hand;

text-decoration:underline;
}
.main-index2 {
background-color: #FFFFFF;
margin-top: 50px;
padding: 18px;
width: 966px;
border-radius: 7px;
}
.spacetd{
line-height:24px;
text-align:left;
}
.text-tr{
border-bottom:1px solid #ccc;
}
.FlowNextBtn {
background-color: #6DCFF6;
border: 1px outset #5BB5E0;
color: #FFFFFF;
display: inline-block;
right:340px;

font-size: 13px;
font-weight: lighter;
height: 19px;
margin-left: 3px;
padding: -3px 2px 0 4px;

}
.FlowPreviousBtn{
background-color: #6DCFF6;
border: 1px outset #5BB5E0;
color: #FFFFFF;
display: inline-block;
right:340px;

font-size: 13px;
font-weight: lighter;
height: 19px;
margin-left: 3px;
padding: -3px 2px 0 4px;
}
.FlowFinishBtn
{
background-color: #6DCFF6;
border: 1px outset #5BB5E0;
color: #FFFFFF;
display: inline-block;
right:340px;

font-size: 13px;
font-weight: lighter;
height: 19px;
margin-left: 400px;
padding: -3px 2px 0 4px;
}
.go-we3:hover{
color: #0066b1;
cursor: pointer; cursor: hand;
}
.boxtable tr td
{
line-height:35px;

}
.tablecls{
-webkit-border-radius: 0px;
-moz-border-radius: 0px;
border-radius: 0px;
}
.detailList{
line-height:35px;
}
.bPageHeader
{
display:none;
}


</style>

<!--<script type="text/javascript" src="http://code.jquery.com/jquery-1.7.1.js"></script>-->

<body>
<div class="wrapper">
<div class="clr"></div>
<div class="main-index2">
<!-- <div class="col-3">
<c:SidePanel />
</div>-->

<div style="width:100%;" >
<div class="my-open" >
<div style="background-color:#008AD3;">
<h2 style="width:450px; font-family:sans-serif; font-size:20px; color:#fff;" valign="bottom">Solutions</h2>
</div>
</div>
<!---<apex:tabPanel switchType="server" >
<apex:enhancedList type="ContentVersion" height="600" rowsPerPage="25" id="aclist"/>
</apex:tabPanel>--->

<script>
function getParam(name) {
name = name.replace(/[\[]/, "\\\[").replace(/[\]]/, "\\\]");
var regexS = "[\\?&]" + name + "=([^&#]*)";
var regex = new RegExp(regexS);
var results = regex.exec(window.location.href);
if (results == null)
return "";
else
return results[1];
}

var caseid = getParam('a_case_soln');


if(caseid != ''){
window.location = '/{!$CurrentPage.parameters.solutionId}?isdtp=vw&test=abc';
}

//
</script>


<a href="{!$currentPage.parameters.retURL}"> <Apex:outputText value="<< Back " rendered="{!if($CurrentPage.parameters.retURL != null, true, false)}" /> </a>
<apex:iframe src="/501/o?isdtp=vw" scrolling="true" height="1152px" width="100%" id="myiframe" rendered="{!if($CurrentPage.parameters.solutionId == null, true, false)}" />
<apex:iframe src="/{!$CurrentPage.parameters.solutionId}?isdtp=vw" scrolling="true" height="1152px" width="100%" id="myiframe2" rendered="{!if($CurrentPage.parameters.solutionId != null, true, false)}"/>

<script>
document.getElementById('myiframe2').src='/{!$CurrentPage.parameters.solutionId}?isdtp=vw&test=abc';

</script>
</div>

<div class="clr">

</div> </div></div><div class="clr"></div>

</body>


</html>
<apex:form >
<c:footer />
</apex:form>
</apex:page>

@altius_rup@altius_rup

Hi Vinita,

We have the same problem.

 

Our Home page on our customer portal displays the following custom component :

<iframe id="theIframe" name="theIframe" src="/apex/ALS_override_Entitlements" false="" height="700px" scrolling="" width="100%"></iframe>

 

The called VF page is the standard Entitlements Tab, pointing directly to a certain view-list :

<apex:page standardController="Entitlement" recordSetVar="Entitlement"  showHeader="false" tabStyle="Entitlement" sidebar="false" >
    <apex:iframe src="/550?fcf=00Bb0000000x461&isdtp=nv" height="2000" />
</apex:page>

 

The resulting behaviour is that click on the links to display records from the view list do not respond.

 

I get the same behaviour if I replace the custom home page component with :

 

<iframe id="theIframe" name="theIframe" src="/550?fcf=00Bb0000000x461&isdtp=nv" false="" height="700px" scrolling="" width="100%"></iframe>

 

 

This is broken since Winter'14 deployment this weekend.

 

SO :

1) what's the problem, how can I fix it ?

2) is there another way of displaying the Entitlements Tab on the customer Portal ?

 

Rup

@altius_rup@altius_rup
BTW, Clijack protection is not the problem.
Vinita_SFDCVinita_SFDC

Thanks for bringing this up, i am working on it. I will get back to you soon.

Vinita_SFDCVinita_SFDC

Hello,

 

Well the issue is because of ClickJack.

Either disable ClickJack which is not recommended or don't use <iframe>.

Vinita_SFDCVinita_SFDC

Hello JimmyJay,

 

Try this:

 

<apex:iframe src="/501/o" scrolling="true" height="1152px" width="100%" id="myiframe" rendered="{!if($CurrentPage.parameters.solutionId == null, true, false)}" />
<apex:iframe src="/{!$CurrentPage.parameters.solutionId}" scrolling="true" height="1152px" width="100%" id="myiframe2" rendered="{!if($CurrentPage.parameters.solutionId != null, true, false)}"/>

@altius_rup@altius_rup

In my case, I have found the fix :  

 

Replace

&isdtp=nv

by

&isdtp=mn

 

Rup