Created
May 21, 2012 01:34
-
-
Save tstachl/2760221 to your computer and use it in GitHub Desktop.
Salesforce open Simple Dialog in custom button/link or on a visualforce page
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// if you want to use it inside a visualforce page create a function around it | |
function showFollowUp() { | |
// if you want to use it in a button make sure you require jQuery | |
// {!REQUIRESCRIPT("https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js")} // UNCOMMENT IF IN A BUTTON | |
// get the dialog with your dialog name | |
var d = sfdcPage.dialogs['MyCoolDialog'], close; | |
if (!d) { | |
// if the dialog doesn't exist create one | |
d = sfdcPage.dialogs['MyCoolDialog'] = new SimpleDialog('MyCoolDialog', false); | |
// set general information on your dialog and finally run the create function | |
d.setTitle('Vorgang auf Wiedervorlage'); | |
d.setWidth(600); | |
d.createDialog(); | |
} | |
// give your dialog some content (I usually use an iframe linking to another visualforce page | |
// change the url, height, width to your needs | |
$(d.dialog).find('#MyCoolDialogInner').html('<iframe src="/apex/mydialog" height="375" width="565" border="0" style="border: 0;" />'); | |
// once the iframe is loaded you may want to give it some functionality | |
$(d.dialog).find('#MyCoolDialogInner iframe').on('load', function() { | |
// find the input boxes within the iframe and attach a click handler | |
$(this).contents().find('input[type="submit"]').on('click', function() { | |
// if it is a cancel button close the dialog | |
if ($(this).val() == 'Cancel') d.hide(); | |
return false; | |
}); | |
}); | |
// we also need to make sure we have a close button on the dialog | |
if ($(d.dialog).find('#InlineEditDialogX').size() == 0) { | |
// if there is none we create it | |
close = $('<a id="InlineEditDialogX" title="Close" tabindex="0" href="javascript:void(0)" class="dialogClose">Close</a>'); | |
// add some functionality to the close button (for the default ui we change the classname on mouseover/out | |
close.mouseover(function() { | |
this.className = 'dialogCloseOn'; | |
}).mouseout(function() { | |
this.className = 'dialogClose'; | |
}).click(function() { | |
// finally our on click handler which closes the dialog | |
d.hide(); | |
}); | |
// insert the new generated close button before the h2 tag so it'll show up on the top right corner | |
close.insertBefore($(d.dialog).find('.topLeft h2')); | |
} | |
// now it's time to show the new dialog | |
d.show(); | |
} |
In chrome, I am getting 'Uncaught SecurityError: Blocked a frame with origin "https://c.cs5.visual.force.com" from accessing a frame .................................' when trying to access a VF page in iFrame, upon clicking a custom JS button on case detail page.
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Is there any way to change background colour of title bar?