Javascript alert recording and testing

I have a form on one of my recorded pages, if data in a particular field matches a certain combination of letters and numbers, a javascript alert is displayed after clicking on the submit button. However if the field is correct then the form will submit and execute the next page.
Is there any way that I can check to find out if the dialog box has appeared and if it has go to a page later on in the script?
Thanks in advance

If I understand that right, if that alert pops up, the error has occurred, and the script won't continue because of the navigation failure. When the script fails, no other "next" page could possibly appear, so there is no point to save that information for later. Correct me if I am wrong.

Similar Messages

  • ECATT recording and testing

    Hi there,
       I have a question regarding testing eCATT. I have Golden client which I have authorization to create/change eCATT. However there is no test data in this DEV client. In other DEV client, it has test data but I don't have authorization to change/create eCATT. I can't create my record properly. Any suggestions?

    I figured it out as I don't have authorization to RFC destination. ty

  • How to show javascript alert popup after commandLink action?

    Hi,
    I'm building an ADF-based .jspx page. I have a commandLink whose action calls a method in my page's backing bean. I want to show a javascript alert popup when the commandLink is clicked and after the backing bean method has been called. The text displayed in the alert popup is dependent on whether the processing in the method was successful or not.
    I couldn't figure out how this could be done though. It doesn't seem I can use the onClick attribute on the commandLink because that gets called before my backing bean method gets called. From my backing bean method, is there some way to launch a javascript alert popup and show certain text in it based on what happened in the method?
    Thanks for any ideas.

    Hello and thank you for your reply,
    I am trying to combine dwr and ADF.
    When I use the following code to grasp the input value from the user
    FacesContext fc = FacesContext.getCurrentInstance();
    ValueBinding expr = fc.getApplication().createValueBinding("#{bindings['LIMARXESPORTCODE_bindVariable2'].inputValue}");
    setLIMARXESPORTCODEbindVariable( expr.getValue(fc).toString() );
    in order to use it as a dynamic bind variable to the where clause of the following query:
    vo.setWhereClause("LIMARXESPORTCODE = :LIMARXESPORTCODE_bindVariable");
    vo.defineNamedWhereClauseParam("LIMARXESPORTCODE_bindVariable", null, null);
    vo.setNamedWhereClauseParam("LIMARXESPORTCODE_bindVariable", LIMARXESPORTCODEbindVariable );
    executeAndShowResults(vo);
    in the backing bean java code. All I get as an output from a javascript alert window is null.
    However, when the bean member variable LIMARXESPORTCODEbindVariable has a
    hard coded, static value i.e. LIMARXESPORTCODEbindVariable = 111; and the first code snippet is commented out, everything works just fine!
    Any hint is welcome,
    T I A.

  • Alert, confirm and prompt javascript functions died with ios 7

    Alert, confirm and prompt javascript functions died with ios7.  Will it be fixed? It breaks websites.

    Hi..
    JavaScript is no longer available to switch on or off in Settings > Safari.
    So apparently that function has died with iOS 7.
    message edited by:  cs

  • Insert record and email

    Hello
    How do I insert a record with the image filename into a database, then send the data just entered as an email?
    I was able to do this before but now this new CS3 seems so complicated!
    I am unable to just use an insert record behavior then add form fields and change the insert or update recored behavior like before.
    Please can I be shown some actual working tutorials on this?
    This search function on this forum does not work as I tried to search for this exact statement "insert record and email" and no records appear.
    Cheers

    Ok, here is the entire page:
    <br />
    <br /><?php require_once('Connections/cnreviva.php'); ?>
    <br /><?php<br />// Load the common classes<br />require_once('includes/common/KT_common.php');<br /><br />// Load the tNG classes<br />require_once('includes/tng/tNG.inc.php');<br /><br />// Make a transaction dispatcher instance<br />$tNGs = new tNG_dispatcher("");<br /><br />// Make unified connection variable<br />$conn_cnreviva = new KT_connection($cnreviva, $database_cnreviva);<br /><br />$editFormAction = $_SERVER['PHP_SELF'];<br />if (isset($_SERVER['QUERY_STRING'])) {<br />  $editFormAction .= "?" . htmlentities($_SERVER['QUERY_STRING']);<br />}<br /><br />// *** Mail form as Text format ***<br />if (isset($_POST["FX_sendForm"]) && $_POST["FX_sendForm"] == "frmupload") {<br />  $format = strtolower("Text");<br />  if ($format != "html") $format = "plain";<br />  $filefield = "uploadfile";<br />  $top = "\r\n";<br />  $body = "\r\n";<br />  $excludeArray = array("button","button_x","button_y","uploadfile","FX_sendForm","MM_insert","MM_update"); <br />  $i = 0;<br />  while ($i<sizeof($_POST)) {<br />    if (!in_array(key($_POST),$excludeArray)) {<br />      if (is_array(pos($_POST))) {<br />        $postVar = implode(", ", pos($_POST));<br />      } else {<br />        $postVar = pos($_POST);<br />      } <br />      $body .= strtoupper(key($_POST)) . ": " . stripslashes($postVar) . "\r\n";<br />    }<br />    $i++;<br />    Next($_POST);<br />  }  <br />  $bottom = "\r\n";<br />  $from = $_POST["email"];<br />  // set parameters<br />  $recipient = "[email protected]";<br />  $subject = "Test";<br />  $message = $top . $body . $bottom;<br />  // set extra parameters<br />  $headers = "From:" . $from . "\r\n";<br />  $headers .= "Cc:\r\n";<br />  $headers .= "Bcc:\r\n";<br />  require_once("FXInc/FX_mailForm_php.inc");<br />  // send all<br />  mail($recipient, $subject, $message, $headers);<br />  $body = urlencode(str_replace("\r\n", "<br>", $body));<br />  $redirect = "thankyou.php";<br />  if ($redirect) header("Location: " . $redirect);<br />}<br /><br />// Make an insert transaction instance<br />$ins_tblfeedback = new tNG_insert($conn_cnreviva);<br />$tNGs->addTransaction($ins_tblfeedback);<br />// Register triggers<br />$ins_tblfeedback->registerTrigger("STARTER", "Trigger_Default_Starter", 1, "POST", "KT_Insert1");<br />$ins_tblfeedback->registerTrigger("END", "Trigger_Default_Redirect", 99, "thankyou.php");<br />// Add columns<br />$ins_tblfeedback->setTable("tblfeedback");<br />$ins_tblfeedback->addColumn("name", "STRING_TYPE", "POST", "");<br />$ins_tblfeedback->addColumn("email", "STRING_TYPE", "POST", "");<br />$ins_tblfeedback->addColumn("city", "STRING_TYPE", "POST", "");<br />$ins_tblfeedback->addColumn("country", "STRING_TYPE", "POST", "");<br />$ins_tblfeedback->addColumn("shoe_size", "STRING_TYPE", "POST", "");<br />$ins_tblfeedback->addColumn("feedback", "STRING_TYPE", "POST", "");<br />$ins_tblfeedback->addColumn("activate", "STRING_TYPE", "POST", "", "N");<br />$ins_tblfeedback->addColumn("photo", "FILE_TYPE", "FILES", "uploadfile", "");<br />$ins_tblfeedback->setPrimaryKey("id", "NUMERIC_TYPE");<br /><br />// Execute all the registered transactions<br />$tNGs->executeTransactions();<br /><br />// Get the transaction recordset<br />$rstblfeedback = $tNGs->getRecordset("tblfeedback");<br />$row_rstblfeedback = mysql_fetch_assoc($rstblfeedback);<br />$totalRows_rstblfeedback = mysql_num_rows($rstblfeedback);<br />?>
    <br />
    <br />
    <br />
    <br />
    <br />
    <br />
    <script src="includes/common/js/base.js" type="text/javascript"></script>
    <br />
    <script src="includes/common/js/utility.js" type="text/javascript"></script>
    <br />
    <script src="includes/skins/style.js" type="text/javascript"></script>
    <br />
    <br />
    <br />
    <br />
    <form action="%3C?php%20echo%20$editFormAction;%20?%3E" method="post" name="frmupload" id="frmupload">
    <br />
    <br />
    <br />
    <br />
    <br />
    <br />
    <br />
    <br />
    <br />
    <br />
    <br />
    <br />
    <br />
    <br />
    <br />
    <br />
    <br />
    <br />
    <br />
    <br />
    <br />
    <br />
    <br />
    <table width="300" border="0" cellspacing="0" cellpadding="5">
    <tr>
    <td>Name
    <br />
    <br />
    <input type="text" name="name" id="name" length="20" value="" /></td>
    </tr>
    <tr>
    <td>Email
    <br />
    <br />
    <input type="text" name="email" id="email" length="20" value="" /></td>
    </tr>
    <tr>
    <td>City
    <br />
    <br />
    <input type="text" name="city" id="city" length="20" value="" /></td>
    </tr>
    <tr>
    <td>Country
    <br />
    <br />
    <input type="text" name="country" id="country" length="20" value="" /></td>
    </tr>
    <tr>
    <td>Image
    <br />
    <br />
    <input name="uploadfile" type="file" id="uploadfile" /></td>
    </tr>
    <tr>
    <td>&#160;</td>
    </tr>
    <tr>
    <td>
    <?php<br /> echo $tNGs->getErrorMsg();<br />?>
    <input type="submit" name="button" id="button" value="Submit" />
    </td>
    </tr>
    </table>
    <br />
    <input type="hidden" name="FX_sendForm" value="frmupload" />
    <br /></form>
    <br />
    <p>&#160;</p>
    <br />
    <br />

  • Javascript alert when showing all rows of a huge table ( 2000 rows)

    i've got this problem. I need to show all the rows of a table, i'm using ADF 10.1.3.4.
    What have i done so far?first of all i created a command link
    <af:commandLink shortDesc="Mostra Tutto" id="showAll"
    disabled="#{bindings.findAllVwEntePrmzRefrIter.estimatedRowCount == 0}"
    action="#{backing_editReferenza.onShowAll}"
    />
    In the backing bean i set the rangeSize of the table to -1
    public String onShowAll() {
    Object objShowAll = getSession().getAttribute("showAll");
    FacesContext fc = FacesContext.getCurrentInstance();
    ValueBinding vb = fc.getApplication().createValueBinding("#{bindings.findAllVwEntePrmzRefrIter}");
    DCIteratorBinding dc = (DCIteratorBinding)vb.getValue(fc);
    int oldRangeSize = dc.getRangeSize();
    dc.setRangeSize(-1);
    int rangeSize = dc.getAllRowsInRange().length;
    dc.setRangeSize(oldRangeSize);
    if ("Y".equals(objShowAll)) {
    getSession().removeAttribute("showAll");
    Integer oldRange =
    (Integer)getSession().getAttribute("oldRangeSize");
    getSession().removeAttribute("oldRangeSize");
    getTable1().setRows(oldRange);
    } else {
    getSession().setAttribute("showAll", "Y");
    getSession().setAttribute("oldRangeSize", oldRangeSize);
    getTable1().setRows(rangeSize);
    return "";
    // AdfFacesContext.getCurrentInstance().addPartialTarget(getTable1());
    Everything runs smoothly, but i have a problem if the table has lots of rows: i get a javascript warning that a script has been running for too long. (The alert goes: "Stop the execution of the script?" the usual javascript alert you get when a script runs for too long)
    What i want to achievt is that, if the table contains a lot of rows, the page takes a lot of time to load, but with no javascript involved (it's just a normal slow page).
    It seems that in some way the rows of the table are fetched by javascript and since the call is synchronous, it trigger the alert.
    This is how i declared the method iterator
    <methodIterator id="findAllVwEntePrmzRefrIter"
    Binds="findAllVwEntePrmzRefr.result"
    DataControl="FePrmzSLESSEJBLocal" RangeSize="10"
    BeanClass="it.ws.sma.prmz.ejb.model.VwEntePrmzRefr"
    Refresh="deferred"
    />
    and this is how i declared the table
    <af:table value="#{bindings.findAllVwEntePrmzRefr1.collectionModel}"
    var="row" styleClass="tableRefr #{backing_editReferenza.tableReferenzeStyleClass}"
    rows="#{bindings.findAllVwEntePrmzRefr1.rangeSize}"
    first="#{bindings.findAllVwEntePrmzRefr1.rangeStart}"
    emptyText="#{bindings.findAllVwEntePrmzRefr1.viewable ? 'Nessuna referenza trovata' : 'Accesso negato'}"
    binding="#{backing_editReferenza.table1}" id="table1"
    banding="row" bandingInterval="1"
    partialTriggers="btnEliminaRefr btnSvuotaPromo btnRemove btnAdd insVeloce">
    has anyone an idea onwhat could i do to have the table load all the rows from the server but withouth the alert?

    Sorry i haven't explain it well...
    the app is used to replicate entire databases, or agrupations of tables, from one database to another and it will have to be vendor independent... I'm trying with DB2, Oracle and MySQL. Later i will test it with more.
    Then I couldn't use vendor dependent SQL neither configuration parameters. Also I prefer to make the import logging the actions: for restoring purposes; maybe the user will have the option but defaults to the ohter.
    I'm thinking about some "strange" query SQL Stardard, like delete from table where (select .... using some kind of counter....

  • Record and Playback performanc​e goes down at high frequency

    Hi,
    We're testing record and playback using USRP-2920( LV 2013sp1, NI-USRP 14)
    To test it, we downloaded record and playback example code.
    Signal source is a function generator outputting 6 MHz bandwidth 8 VSB modulation signal.
    USRP Rx parameters are center = variant / gain = 0 / IQ rate = 25MHz and Tx parameters are center = same as Rx center / gain = 0 / IQ rate = 25MHz
    The problem is... in low carrier frequency like 70MHz, quality of playback signal is great.
    But in high carrier freqency like 2.2GHz, SNR and signal power dropped significantly i.e. they tend to drop as carrier frequency goes high.
    And  the strange thing is as carrier frequency is increased, a small peak on the center is increased as well.
    Please check the attatched file to see the tendancy.
    So.. my question is why is this tendancy occures?(we tested another USRP and the result was same as before)
    and what should we do to reduce this effect?
    Regards,
    Youngmin
    Attachments:
    record and playback results.xls ‏469 KB

    Hi,
    I suggest a couple of things:
    NI USRP 2920 is a non-calibrated device. So setting a gain value of 0 at different frequencies could mean a different actual gain. So try increasing the Rx recording gain (on the USRP) in cases where you observe low SNR. Similarly Tx is not calibrated.
    Is the signal recording done with cables or over wireless medium ? You can try to eliminate any spurious signals if you use SMA cables while recording.
    I think the power at the center of the spectrum is the DC offset. You may refer to the DC Offset/LO leakage section in the best practices section here http://www.ni.com/white-paper/13881/en/
    Thanks.

  • OBIEE 11g: Dashboard not invoking simple javascript alert

    Hi Experts,
    I'm trying to invoke one simple ALERT command with javascript in obiee 11g dashboard. The purpose is when it loads, it should print one ALERT message and also when we change something in the prompt and clicking Apply button.
    Here is code written in a text item (Checked html markup option) after prompts;
    <script language="Javascript">
    alert ("Hello");
    </script>
    The Javascript alert message is showing when the dashboard page loads, but its not coming when we click the Apply button after changing the prompts.
    Can anyone give helpful hint, how to check it and why its not showing up when we press Apply button?
    Any hint or some useful links will b highly appreciated.
    Thanks in advance.

    You just used code and I would say the default event is onload of the page, thats the reason you are able to see alert.
    Since you didnt ask or written code onClick event to show alert, its not showing.
    You need to tell to browser when to prompt alert message instead of onload.
    Hope you are more confuse about 'how to do'
    if yes, mark :)
    give some more info about your actual req. that helps any other gurus to help.
    Edited by: Srini VEERAVALLI on Mar 27, 2013 8:42 AM

  • Javascript alert boxes are wrapped in Windows 7 with IE 8

    I can't count the number of JavaScript alert boxes I have throughout my systems and they have always made the transition between IE browsers from 6 to 8 without a hitch.  Without a hitch until I setup my first Windows 7 machine.  It is a 64 system that has both 32 & 64 bit IE browsers.
    It doesn't matter which of the two versions I use, the JavaScript messages that I have so carefully crafted with just the proper layout are now wrapped.  The resultant text in the new W7 popups is almost unintelligible because it is so badly scrambled/wrapped on the new white background.
    Since an alert box is simplicty itself, there is no way that I can think of to change the inherent size of the box.
    Has anyone else notice this phenomena???   If so, do you have a way around it short of redoing all of the text in the effected boxes???
    Len
    XP machine's JavaScript Alert popup in IE 8
    W7 machine's JavaScript Alert popup in IE 8 with wrapped text

    HMM I have the same problem. My researches suggest that the Zone.Identifier ADS is still being used for the internet zone, but not the Intranet zone. I too can get an intranet location out of IE, but not by querying Zone.Identifier eg using Powershell. This
    issue is present in XP as well as Win 7. It appears to extend to trusted zone ids.
    One hypothesis is that this is being stored in hidden form to prevent zone ids that decrease security being applied by malware.
    I had thought that maybe the intranet zone id was only present during download - but your experiment suggests otherwise.

  • JavaScript Alert functionality in PL/SQL

    I'm in need of implementing the JavaScript "Alert" functionality (display message and wait for user to acknowledge) in the "before displaying the page" PL/SQL block of portal reports and forms. While I'm at it - How about the JavaScript "history.back" function as well?
    Is this possible? Can you point me in the right direction.

    Hi,
    Where Portal says "before displaying the page" what it means is that it will run this code before it starts to htp.p() out the HTML of the page.
    In WebDB this was actually what happened, in Portal there are some elements of HTML output BEFORE this block of code is run.
    Anyway I don't think that you can have an alert that displays before the page is loaded. The page will still show behind the alert.
    To get around this you would need a blank page to show your alert that forwards you on to the required page.
    The history function can be called by the onclick event of a button or you can access Javascript through an anchor tag:-
    link text
    Regards Michael

  • Not able to display javascript alert message from within a pl/sql block

    Hello,
    Can anyone please help me out with this issue. I wanted to display an javascript alert message from within a pl/sql block for an update button. Below is sample code which i am using. P1_ITEM is my hidden item on the report.
    begin
    if :P1_ITEM IS NOT NULL then
    HTP.p ('<script type="text/javascript">');
    HTP.p ('alert(''Please complete the item which is already assigned to you!'');');
    HTP.p ('</script>');
    end if;
    end;
    and I have made this code to be executed conditionally when request = Expression1
    Expression1: SUBMIT
    The thing is I am not able to display an alert message when the update button is clicked.
    Can anyone please help me with this one.
    Thanks,
    Orton

    varad but I also have an update statement within that block for the update button something like this i want to achieve.
    begin
    if :P1_ITEM IS NULL THEN
    update sample_tbl
    set col1 =:APP_USER,
    col2 = 'Y'
    where pk_col = ---;
    commit;
    HTP.p ('<script type="text/javascript">');
    HTP.p ('alert(''Successfully assigned an item!'');');
    HTP.p ('</script>');
    end if;
    if :P1_ITEM IS NOT NULL then
    HTP.p ('<script type="text/javascript">');
    HTP.p ('alert(''Please complete the item which is already assigned to you!'');');
    HTP.p ('</script>');
    end if;
    end;
    thanks,
    Orton

  • How to select and duplicate the records and update some column values using cursor

    I have a table with 920 records, we need to update the end date to 6/30/2014 for 920 records and I need to create all 920 records with start date is 7/1/2014 and update the external value to
    CCC.
    Note: the table primary key is not auto increment, but I have sp to get the latest key for that.
    Existing table.  
    ID
    Source Name
    Internal value
    External value
    Start date
    End date
    1
    XXX
    AAA
    BBB
    1/1/2013
    6/30/2015
    Create new records
    ID
    Source Name
    Internal value
    External value
    Start date
    End date
    921
    XXX
    AAA
    CCC
    7/1/2013
    12/30/2015

    Hi ManuGT
    If I understand what you need then you ask for:
    1. updating all current rows (920 rows in the table now)
    2. insert new rows which are duplicates of the preiviews rows, but with value 'CCC' insteade of 'BBB'
    If so, there is not reason to use a cursor and it is highly NOT RECOMMENDED to use ant type of loop.
    You should work with SET and do it all in 2 simple queries:
    -- first we duplicate the existing rows,
    -- but we use the values 'CCC" and '20140107' for the new rows values
    INSERT test (SourceName, InternalValue, ExternalValue, StartDate, EndDate)
    select SourceName, 'CCC', ExternalValue, '20140107' , EndDate
    from test
    where
    -- You can use any filter that you need if you dont want to update all rows
    InternalValue = 'AAA' and ExternalValue = 'BBB' and StartDate = '20140101' and EndDate = '20140630'
    -- Now we update the old rows (check the filter! I get only the old rows since I filter the new rown out)
    UPDATE test
    SET EndDate = '20140107' -- I use date in format yyyymmdd, You can use other formats as well
    where
    -- You can use any filter that you need if you dont want to update all rows
    InternalValue = 'AAA' and ExternalValue = 'BBB' and StartDate = '20140101' and EndDate = '20140630'
    Unfortunately you did not post DDL+DML! Therefore we cant see your table structure and the data sample and we can only guess. I used Saeid's post as the basic DDL+DML.
    Please next time post DDL+DML
    here is the full code with the DDL+DML that i used:
    -- This is our DDL - A create table query:
    create table test
    ( id int identity(1,1) primary key,
    SourceName nvarchar(3),
    InternalValue nvarchar(3),
    ExternalValue nvarchar(3),
    StartDate date,
    EndDate date
    go
    -- This is our DML - A query that insert some sample data
    declare @i int = 1 ;
    while @i < 921
    begin
    insert test (SourceName, InternalValue, ExternalValue, StartDate, EndDate)
    values ('XXX', 'AAA', 'BBB', '1/1/2014', '6/30/2014' ) ;
    set @i += 1 ;
    end ;
    GO
    -- Here is the solution for the problem as I understood your needs:
    -- first we duplicate the existing rows,
    -- but we use the values 'CCC" and '20140107' for the new rows values
    INSERT test (SourceName, InternalValue, ExternalValue, StartDate, EndDate)
    select SourceName, 'CCC', ExternalValue, '20140107' , EndDate
    from test
    where
    -- You can use any filter that you need if you dont want to update all rows
    InternalValue = 'AAA' and ExternalValue = 'BBB' and StartDate = '20140101' and EndDate = '20140630'
    -- Now we update the old rows (check the filter! I get only the old rows since I filter the new rown out)
    UPDATE test
    SET EndDate = '20140107' -- I use date in format yyyymmdd, You can use other formats as well
    where
    -- You can use any filter that you need if you dont want to update all rows
    InternalValue = 'AAA' and ExternalValue = 'BBB' and StartDate = '20140101' and EndDate = '20140630'
    -- Here we just check how the result look like :-)
    select *
    from test ;
    -- And since we do not realy need this table in our server... Here we clean the DDL (you probaby DO NOT WANT TO EXECUTE THIS!)
    DROP table test
    GO
    I hope this was useful :-)
    [Personal Site] [Blog] [Facebook]

  • JavaScript alert in AS3 or AS2 to debug the external actionscript file

    Hi,
    Is there any way to debug the external AS file as i dont want to use "trace".
    I have an idea to use the input text field the check the variable/function is working right but this is not enough so is there any process in AS2 or AS3.
    Thanks in advance..

    my mistake ..i have used there dynamic textfiled.
    but i got a easy solution by using
    getURL ("javascript:alert('Testing');");
    but this is not the good solution
    is there any way to import the alert contolls in AS2
    like i have read somewhere
    import mx.controls.Alert;
    Please reply..

  • Javascript Alert on download setup

    I just purchased Adobe Elements 6.0 for my IMac and have previously used a trial version. I have successfully downloaded the program, but when I run the setup file I get this error  "Javascript Alert: Critical errors were found in setup. Incompatible payloads already installed. See setup log file for details." I am assuming this error is because I have had a previous trial version on my computer.... I have tried deleting/uninstalling the older programs, but I don't know if I have found all of the old files, or if this is even the problem...also, my serial number is not working...I think this is also related to the old trial version... can anyone help with this???

    Hi,
    There is a known issue with installing retail version of PSE 6 on trial version. Removing files manually doesnt actually remove all the files, there are still some files which we do not directly relate but still need to be removed.
    You can follow the below link to get rid of the issue:
    http://kb2.adobe.com/cps/403/kb403796.html
    Let me know if this helps.
    Cheers,
    Ankush

  • Recording and pasting sounds in OSX, a better way?

    I have not tried doing this before but another poster wants to add audio notes in Pages.
    When I researched this, in itself a painful task, it seems the only way to record is via QuickTime Pro and to export it and massage it into shape before going a round about route to bring it into Pages.
    I can't believe it is this bad!
    I also noted a few GUI gaffes along the way.
    Please tell me the whole process of simply recording and pasting a sound has not completely gone backwards since Mac OS9?

    orangekay.
    None of what you are saying advances the issue at all. All you are doing is denying that it is useful or saying that you personally wouldn't use it.
    The original O.P. is a Professor who uses audio comments because it is fast and personal. Which is his choice.
    It should not be a Pages function to record and place the audio, that should be a system one. The first part was already better managed and obvious over a decade and a half ago.
    I sourced him a range of 3rd party software that could do the recording for him, only one of which would add it into the location (I'm not sure how cleanly). Only one of these was free, the rest were pricey.
    I was personally astonished, even though I have encountered other such kludges in OSX, that Apple has made the simple act of recording audio so awkward and concealed. It is yet another example of how unfamiliar the OSX programmers are with elementary good user design. Also that despite many features are thrown into the system, they are unfinished and essentially useless.
    In the process of testing a method of achieving the end result in Pages, I tested a recording by playing it in the media browser. The play button doesn't even toggle to a stop button. Doesn't anyone at Apple look at how it is done anywhere else in the System?

Maybe you are looking for